Вы находитесь на странице: 1из 28

Software Engineering

(SE2223)
Lecture 12 Imran RAO
27 Apr 2018 imranrao@gmail.com

1
Course Contents
• Introduction to Software Engineering
o Issues & Challenges
• Software Development Processes
o Classical, Incremental & Iterative
o RAD, Spiral, Prototyping
• Requirements Engineering
o Process Modeling
o Data Modeling
o Use Cases / Test Cases
o UML
• Software Design and Architecture
o UML
o Business Logic & Persistence
o Component Level Design
• Software Project Management
o Planning, Scheduling, Tracking, Risk Management
• Quality Management
o Testing Strategies& Techniques
o Change Management
• Software Deployment

SE 2223 Software Engineering 2


Model
• What is a Model?
o A model is a simplification of reality
o A set of blueprints of a system
o Closed abstraction of the system

• Why we Model?
o Communicate a desired structure and behavior of a software system
o Visualize and control a system’s architecture
o Assist in understanding a system under development
o Expose opportunities for simplification and reuse
o Document and Manage risk

• Visual Modeling
o Capturing the requirements of a user and presenting it graphically is
referred as visual modeling

SE 2223 Software Engineering 3


Modeling
• Importance of Modeling
o Proven and accepted engineering technique; divide-and-conquer.
o Help to make complex systems
o Desire to build the right software right
• Functional Modeling
o Algorithmic perspective
o Building blocks of functions or procedures
• Object-Oriented Modeling
o Building blocks of classes or objects
o Drawn from the vocabulary of the problem space

SE 2223 Software Engineering 4


Unified Modeling Language (UML)
• What is UML?
o The Unified Modeling Language tries to integrate older approaches
o Used to visualize, specify, construct, and document
o Process independent
o Appropriate for modeling systems ranging from enterprise information systems
to distributed Web-based applications and even to hard real time embedded
systems
• UML is a Language (and NOT a process)
o Vocabulary and rules for communication
o Focus on conceptual and physical representations of a system
o A language for software blueprints
o An explicit model facilitates communication
o UML is a graphical language
o UML symbols are based on well-defined semantics

• Specifying means building models that are:


o Precise
o Unambiguous
o Complete

SE 2223 Software Engineering 5


Usage of UML
• UML addresses the specification of all
important SDLC phases:
o Requirement Engineering
o Analysis
o Architecture, Design & Implementation
o Tests
o Project planning
o Release management
• UML facilitates both:
o Forward engineering — direct mapping of a UML model into code.
o Reverse engineering — reconstruction of a UML model from an
implementation.
• Requires tool and human involvement to avoid
information loss

SE 2223 Software Engineering 6


UML Diagrams
 Class Diagram
 Object Diagram
 Component Diagram Structural Diagrams
 Deployment Diagram
 Use Case Diagram
 Sequence Diagram
 Collaboration Diagram
 State Chart Diagram Behavioral Diagrams
 Activity Diagram

SE 2223 Software Engineering 7


Unified Development Phases
Requirements Use Cases
Domain Analysis
Analysis Class Diagram

Interaction Diagrams

Design

Architecture Design Detailed Design

Packages, Dependencies, Libraries Implementation

SE 2223 Software Engineering 8


Quick Overview of CASE Tools
• Commercial
o Microsoft Visio (Microsoft)
o Rational Rose (IBM)
o Together Designer (Borland)
o Rhapsody (I-Logix)
o Poseidon (Gentleware)

• Free
o Star UML
o Omondo
o Visual Paradigm (Visual Paradigm) Open source
o ArgoUML (Tigris)

SE 2223 Software Engineering 9


Tool Demo via Case Study

Digital Sound Recorder


(Dictaphone)

(Credit: Ivan Porres Paltor, Johan Lilius: “Digital Sound Recorder: A case
study on designing embedded systems using the UML notation”)

SE 2223 Software Engineering 10


Dictaphone – Main Features
• Capacity for 10 different messages, each max. of 2
minutes
• Messages can be recorded, played back and
deleted
• Messages can be locked/unlocked to prevent
unwanted deletion/overwriting
• LCD display

SE 2223 Software Engineering 11


Dictaphone – Problem Statement
• The recorder stores up to 10 messages
• Each message is max. 2 minutes long
• The user can record message
• Recording of a message ends after 2 minutes or when the user
stops recording
• Recording destroys the original message at chosen slot
• Sufficient level of battery is checked before recording
message
• Message of a given slot can be replayed
• Sufficient level of battery is checked before replaying
message
• Messages can be locked/unlocked
• Locked messages cannot be deleted or over-written by
recording to the same slot
• User uses LCD display and buttons to interact with recorder

SE 2223 Software Engineering 12


Dictaphone – Tasks
1. Develop use case diagram
o Write flow of event for one or two interesting use cases

2. Develop sequence diagrams for selected use


cases
o Remember: need not model all possible scenarios

3. Develop class diagram


4. Refine sequence diagrams from step 2 according
to the classes you have identified in step 3
o Remember: you might need to refine your class diagram

5. Draw state diagram for classes with interesting


behavior
o Remember: typical candidates are control objects

SE 2223 Software Engineering 13


Conclusion
• You don't typically use all the diagrams
o You'll choose between them based on
preference and particular situation
• You typically use many diagrams
o A single use case may not capture all scenarios
o If you are going to use state charts, there are
probably lots of objects with states
o Each sequence/collaboration diagram only
shows one interaction

SE 2223 Software Engineering 14


Use-case Diagram – Purpose

SE 2223 Software Engineering 15


Use-case Diagram – Where to use it

SE 2223 Software Engineering 16


Class Diagram – Notation
A class diagram models the static structure of a system.
It shows relationships between classes, objects,
attributes, and operations

SE 2223 Software Engineering 17


Class Diagram – Purpose

SE 2223 Software Engineering 18


Class Diagram – Where to use it

SE 2223 Software Engineering 19


Class Diagram – Example

SE 2223 Software Engineering 20


Activity Diagram - Notation

An activity diagram visually presents a series of actions or flow of control in a


system similar to a flowchart or a data flow diagram

SE 2223 Software Engineering 21


Activity Diagram - Purpose

SE 2223 Software Engineering 22


Activity Diagram – Where to use it

SE 2223 Software Engineering 23


Activity Diagram – Example

SE 2223 Software Engineering 24


Sequence Diagrams
• Sequence diagrams describe interactions among
classes in terms of an exchange of messages over
time
• They're also called event diagrams
• A sequence diagram is a good way to visualize and
validate various runtime scenarios
• These can help to predict how a system will behave
and to discover responsibilities a class may need to
have in the process of modeling a new system

SE 2223 Software Engineering 25


Sequence Diagram - Notations

SE 2223 Software Engineering 26


Sequence Diagram - Example

SE 2223 Software Engineering 27


References
• https://www.tutorialspoint.com/uml/uml_basic_nota
tions.htm

• https://www.smartdraw.com/class-diagram/

SE 2223 Software Engineering 28

Вам также может понравиться