Introduction to Software Engineering includes several interesting articles that define our understanding of the discipline of software engineering. Furthermore, these articles force us to examine the challenges of software engineering and discuss which concepts, theories, tools and techniques will be needed to meet these challenges.
Software Lifecycles includes an article that provides a general review of software lifecycles and then several articles that offer an more detailed analysis of extreme programming, an example of an agile software development methodology.
Software Requirements Elicitation and Analysis / Specification provides definitions for the different types of software requirements and a discussion of what makes a good requirement. Finally, this section includes an examination of formal methods from the perspective of a specificier.
Software Design includes a review of the Unified Modeling Language (UML) and the purposes of modelling, a discussion of software architectures, and a detailed examination of the principles of object-oriented software design.
Software Testing and Analysis offers a detailed review of measurement theory, software test adequacy measures and GUI testing.
Software Implementation provides a review of some frequently under-examined areas of software development, including aspect-oriented programming and software performance tuning.
Software Maintenance currently includes two articles that discuss regression testing and techniques for extracting object mobels from Java bytecode.