Professional Documents
Culture Documents
Session 1: Introduction
Course Goal
The course aims at teaching the analysis and design of software systems Analysis means who will use the system, what the system will do, where and when it will be used. Design means how the system will be built and operate, in terms of hardware and software.
Outline
1. Software System Characteristics - Requirements and Solutions.... 4 2. Development Processes ...20 3. The Unified Process .33 4. Modeling Languages ....39 5. The Unified Modeling Language .48 6. Course Plan ..54
Reliable
The system should mark the right ordered book for a specific student.
Affordable
The university has allocated the right budget to develop the system.
Available
The system should work 7 days a week.
We tend to solve whole problems. Small changes in specifications lead to reconstruction of the whole system:
The system is planned to support only books and journals. Addition of CDs implies changes to the design (and code).
Mira Balaban and Arnon Sturm Object-Oriented Analysis and Design
10
11
What is Dependency?
Module A depends on module B if changes to module B can imply changes to module A: A is a client of B A use services of B; B acts as a server to A
Ordering depends on Searching Important information for a module:
Which modules are its clients? What assumptions clients make about it? Which modules are its servers?
Mira Balaban and Arnon Sturm Object-Oriented Analysis and Design
12
13
Achieving Modularity
Interface is the means for achieving modularity: Interfaces encapsulated modules Interface of a module: Encapsulates knowledge about a module. Defines features on which clients can rely. Contract of a module Declares the responsibilities of a module (interface, services, constraints). States the context dependencies of a module -the services it requires in order to work.
Mira Balaban and Arnon Sturm Object-Oriented Analysis and Design
14
Layering
A common technique for breaking apart complex software systems.
Machine architectures: Programming languages + Operating systems. Device drivers + CPU instructions. Logic gates inside chips. Networking: FTP TCP IP Ethernet.
Principles:
Higher layers use services of lower layers. Lower layers are unaware of their higher layers. Each layer hides its lower layers from its super layers.
15
Cons.
Reduce efficiency: Translation takes time. Changes in a higher layer propagate downwards. Addition of a field in a user interface propagates down to the database layer instead of a direct database schema revision.
16
Domain Logic
(business logic)
Application core
Data source
17
Drawbacks: Change in the awarding policy implies changes in the UI layer. If the awarding policy is duplicated (e.g., for communication with the Human Resource department) than policy change implies multiple revisions (consistency problems). Change in the singling-out technique implies system changes.
Mira Balaban and Arnon Sturm Object-Oriented Analysis and Design
18
Advantages:
Changing the awarding policy affects only the domain layer in a single point (3). Change in the singling-out technique (5) does not affect the rest of the system.
Mira Balaban and Arnon Sturm Object-Oriented Analysis and Design
19
Development Processes
20
An organized set of activities whose goal is the development or evolution of software. Generic activities in all software development processes are:
Specification - what the system should do and its development constraints. Development - production of the software system. Validation - checking that the software is what the customer wants. Maintenance - changing the software in response to changing demands.
21
Development processes differ in the involved activities, their duration and ordering.
22
End of use
Object-Oriented Analysis and Design
23
24
25
26
27
28
Build
Design
Analysis
Design
Build
Implementation & Integration Delivery
Analysis
Design
Delivery
29
30
engineering
31
The most well known agile development process -Extreme Programming (K. Beck): Minimal development phases. Test Driven Development (TDD).
Mira Balaban and Arnon Sturm Object-Oriented Analysis and Design
32
33
34
35
36
37
38
39
Modeling Objectives
Visualize a system as it is or as we want it to be. Specify the structure or behavior of a system. Provide a template that guides system construction. Document decisions that we have made.
40
Real World
Conceptual Model
Modeled Phenomenon
Software Construction
Mira Balaban and Arnon Sturm Object-Oriented Analysis and Design
41
42
Example: In the Library information system: System is broken by processes into: Return/Loan, AddResources, reportFines, ...
44
45
46
47
48
49
UML Goals
Define an easy-to-learn but semantically rich visual modeling language. Unify existing Object-Oriented modeling languages: Booch, OMT, and OOSE modeling languages. Incorporate industry best practices.
50
Model
Deployment Diagram
Diagrams
51
52
53
Course Plan
Structural Modeling
Class and Object Diagrams UML extension mechanism (applied to the static part) Meta modeling Object-Constraint Language (applied to the static part)
Behavioral Modeling
Modeling object interaction Sequence and Collaboration Diagrams Modeling object behavior State charts Modeling cross object behavior Activity Diagrams
Development Process
Requirements gathering, modeling and implementing System Layering
54