Follow a defined process:
Orderly, predictable and repeatable
The goal of development process:
Determine order of stages involved in software development and evolution and establish the transition
criteria for progressing from one stage to the next.
Development Stages:
Requirement engineering (Analysis)
o Identify what the system should do
o Define non-functional requirements
Design
o Giving shape to the system based on requirements
Implementation (Code)
o Executable software
Testing (this isn’t touched in the course)
The waterfall development process:
Fixed stages and sequential
Good for document-driven development
Poor agility
o Doesn’t give a good idea for what is happening in the project
o Single delivery date
High risk
o Only in the testing section we talk with customers, which could cause
miscommunication
The Agile development process:
Relies on sprints that last 2 weeks
Focus on specific features iterative development
Continues interaction between dev. team and customer
Less risky however it doesn’t have a strong quality plan
Lecture 1.4 Requirements engineering
The process of establishing features and quality requirements
A requirement may range between a high-level abstract statement of a feature and a detailed
functional specification.
Features functional requirements
Precise, complete, consistent, and verifiable
,Quality requirements non-functional requirements
Focuses more on how the system is working
Could be more critical than functional requirements safety requirements
Categories of quality requirements:
o Usability, maintainability, reliability, responsiveness, availability, and security
Lecture 2.1 UML
Most used language for modeling software
Main characteristics:
Not tied to any dev. process
Can be used across the whole life cycle
Scalable
Has different representations
o Graphical, textual, etc.
Supports descriptive and prescriptive models
Semi formal modeling language
o Has a well-defined meaning
UML can be represented graphically by diagrams:
Structure diagram
o Emphasizes on static description of system elements
o Example: class and object diagram
Behavior diagram
o Show the steps that can be performed in a system
o Example: state machine and sequence diagram
Important: A UML model contains everything related to your system it’s complete
You can use eclipse papyrus to create a UML diagram.
Lecture 2.2 UML case diagram
Class construction plan for a set of similar objects of a system
, First define the attributes:
Visibility:
Important: have private as a default, helps to pin-point bugs
Properties:
Class variable and class operations:
Instance var. (instance attribute)
Class var. (static attribute)
Class op. (statistic operation)
One can create specifications of classes that are coarse-grained or fine-grained.
Important: one can use a coarse-grained class diagram as a descriptive model.