Software Engineering Lecture 1 ASPI8-4 Anders P. Ravn, Feb 4, 2004
Overview The development process Documents OAD in Requirements Analysis 1.Problem Domain Analysis 2.System Definition 3.Class, Association, Dependency 4.Behaviour, Event
The project mainstays Journal – Agendas, Minutes, Notes Report – Work Items Schedule – Milestones, Activities
Organization - Players Customer – has the problem and has to be satisfied with the solution Project Team – works to find a solution Boss – defines the resources and monitors progress Consultant – contributes ideas and expertise
Team - roles Designer – develops solutions Integrator (tester) – ensures consistent releases Developer – develops components Documenter – ensures documentation Organizer (planner) – keeps orderly progress
Planning – why bother? Customer expectations Project progress The solution space
Planning – why! To be able to act rationally when – forseeable - events happen. Livet forstås baglæns, men må leves forlæns Søren Kierkegaard
Planning – how? Time Activity Deadline Milestone
Gant Chart Activity A B C …
Pert Diagram A 14 B 7 C 10 D 13 F 7 E 14 G 5 H 6 I 24
Status WP1
Literature (incomplete) Fred. P. Brooks: The Mythical Man-month G. Weinberg: The Psychology of Programming N.E. Andersen, et al.: Professionel Systemudvikling H. Mills: Chief Programmer Teams D. Gibbs: Extreme Programming
A Development Process (V-model) Requirements Spec Accpt. Test Report Acceptance Test Spec Architectural Spec Integr. Test Report Integration Test Spec Module Interface Spec Module Spec Module Test Report Module Test Spec Program Source text A rational Design Process – or how to fake it Heninger & Parnas, 1979
Your Report! 1.Requirements Specification 1.1 System Definition 1.2 Problem Domain Structure 1.3 Application Domain Structure 1.4 Acceptance Test Specification 2.Architecture 3.Modules 4.Implementation 5. Test
Example: Computer Vison based implement guidance in row crops A rich picture
System Definition A concise description of a computerized system expressed in natural language Example: A computer system which guides an implement through crops in rows. The system must not be slower than the traditional guidance methods, and must relieve human operators of local monitoring and control tasks.
Example:The prototype software
FACTOR A concise description of a computerized system expressed in natural language FACTOR: Functionality for end use Application Domain of end use Conditions for success Technology to be used Object System Realization conditions
Example: FACTOR A computer system which guides an implement through crops in rows. (Application Domain). The system must not be slower than traditional guidance methods (Conditions), and must relieve human operators of local monitoring and control tasks (Functionality). The final system must be implemented on a TriMedia TRS8XX with a simple display and button user interface (Technology and Object System) The system shall be very dependable and inexpensive to produce (Realization Constraints).
Problem Domain Description Class Diagrams (things and their relations) Selected Behaviours (events and their sequence) Notes - text (interpretation of concepts )
Example: Problem Domain Structure
Example: Tractor Behaviour Outside row In row ManualAuto start stop
Example: Interaction of Tractor and Row Weeder :Tractor:RowWeeder lower engage no_row
Summary: Problem Domain Analysis Rich Picture System definition - FACTOR Structure - Class Diagrams Behaviour - Statechart Diagrams Interaction - Sequence Diagrams Notes
Your Report - 1! 1.Requirements Specification 1.1 System Definition 1.2 Problem Domain Structure 1.3 Application Domain Structure 1.4 Acceptance Test Specification 2.Architecture 3.Modules 4.Implementation 5. Test
UML Notation Class Object Association Dependency Package
Class and Object Class name attributes methods Object: Class name 1* Association
Superclass Generalization Subclass
Aggregation the whole the part [arity]
Association [name] [arity]
Dependency ”uses”
Package (cluster) related classes > name
Summary: Diagrams Class and Object Generalization Aggregation Association Dependency Package Statechart DiagramStatechart Diagram Sequence DiagramSequence Diagram