Lecture 1 Flashcards
Software Engeneering
- engeneering discipline concerned with all aspects of software production (early stages of system specifications –> maintenance)
- Concerned with professional software development
SE Activities
Software Specification
Software Development
Software Validation
Software Evolution
Software Specification
Specification of steps, rules, processes to build software
1968
Software engeneering started as a tem with the objective to adress the software crisis caused by individual aproaches to development not scaling up to complex systems
Software Validation
testing the software
Sfotware Development
development of tools, framerorks…
Software Evolution
Management of the software development over its lifetime
Issues of Software
Heterogeneity - different types of computer and devices for distributed software
Bussines/Social change - software needs to respond well to quick changes
Security, Trust, Privacy - we must trust the software as it is ubiquitous
Software Engeneering Fundamentals
- Software should be developed using a managed and understood process
- Dependability and performance - important for all kinds of systems
- Software specification and requirements need to be well understood
- Reuse software already deployed where applicable
Software Engeneering Process (definition)
A structured set of activities required to develop a software system
(Process: series of actions or steps taken to achieve a particular end)
SEP Activities
- Specification - what software does
- Design - how it does it
- Implementation
- Test and validation
- Maintenance and Evolution - changing sofotware over time according to customer
Software Process Model
Abstract representation of a process. Is composed of:
- Activities: what steps are defined by the model
- Products: outcomes of a process activity
- Roles: responsibilities of the people involved
- Pre and Post Conditions: statements true before and after an activity has been enacted or a product produced
Types of Software Process Models
Plan Driven - All activities are planned in advance and progress is measured against set plam
Agile - Planning is incremental. Easier to change the process to reflect change in requirements
Waterfall Model (general)
Plan Driven, Sequential and separate activities.
Reuse Oriented SE
Software is assembled from existing components. Plan driven/agile