Perspectives
- Definition of Software Engineering
- Software Development as a Formalisation Process
- The Scope of Software Engineering
- Software as Art and Engineering
- Software as a Social System
- Software Development as a Learning Process
- Complexity in Software Engineering
- Quality in Software Engineering
Areas
- Project Management – how to deal with the size complexity of software development
- Requirements Engineering – the languages of the problem
- Software Design – the languages of the solution
- Software Implementation – the execution language
- Software Process – systematic and disciplined approaches to language transformation
- Verification and Validation – accurate representations using the languages, both for the problem and the solution
From Perspectives to Areas
From the above perspectives we can draw the following conclusions and how they impact on the different software engineering areas
Annotated Reading
(1) Software and Obama’s Victory, by Martin Fowler
- How the software drives the change of the organizational structure, clearly a E-system. Interestingly, the new organizational structure is inferred from existing software networking models, e.g. peer-to-peer.
- It is a social system, which fosters patterned series of interrelationships, like topic focused meetings
- The software system had to evolve due to their success, most of the systems started as ad-hoc applications
- The problem, identify the potential voters, and the solution, generate classifications, became a new problem, how can these classifications be effectively created?
- The software is also used to create an organization. In this case Enterprise Modelling is part of the software engineering tasks because the software artefact needs to have a model of the organization to promote local volunteer groups.
- As a E-system, it changes reality and has to deal with the new reality it created but it was not designed for, “its raises a question of what happens should Republican supporters use it“. The need for evolution is also a key point in this case.
(2) ConversationalStories, by Martin Fowler
- On the intertwine of problem understanding and solution constructions in agile methods.
- Developers can change and propose new stories, write stories.
- The strategy is named “conversational”.