0% found this document useful (0 votes)
2 views30 pages

Lecture 1-Course Introduction

Uploaded by

arteamurati5
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
2 views30 pages

Lecture 1-Course Introduction

Uploaded by

arteamurati5
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd

Software Analysis

and Design
Lecturer: Dr. Igli Hakrama
Email: ihakrama@[Link]

Software Analysis and Design 1


Who am I?
• 2004-2008 – (BA+MSc)
– UT Winner of 3rd place in world for SIFE
– Member of SEEGRID 2006-2008 CERN FP6 Project
– Several Trainings in Software Engineering and Information
Systems
• 2009-2010 – Bamberg University (MSc in Economics)
• 2010-2011 – MND in Computer Engineering
• 2008-Now : Lecturer
Dr. Igli Hakrama
– 2008-2013: Information Systems Manager (SE)
– 2011-2013: Academic Program Coordinator of BINF
– 2021-2022: Academic Program Coordinator of SWE
– 2022-2023: Academic Program Coordinator of SWE and AI
• worked and finished my PhD for building (AI) Intelligent Agent
Systems for economic modeling that mimic real world
economic transactions and entities for simulation purposes
and to predict new outcomes.
– It uses SE+OR+AI Algorithms and makes use of MAS
• Now Head of Innovation Center and co-supervisor of AI Lab at
Metropolitan University

Software Analysis and Design 2


Course Introduction

Software Analysis and Design 3


Unit outline
• Objectives
• Assessment
• Passing the unit
• Lectures, practice classes, the lecturer and consultation
• Recommended reading
• Assignment work
• Web pages

Software Analysis and Design 4


Objectives (1)

• Knowledge on the difficulties of specifying and


engineering requirements for producing large software
products, leading to
– an appreciation of the need for requirements engineering
methodologies
– understanding of the distinction between software analysis
and design process and programming a software.

Software Analysis and Design 5


Objectives (2)

• An understanding of, and ability to apply, the methods of


analysis and design, including:
– structured analysis and design using Yourdon notation
• Context Diagram, Event Lists, Data-Flow Diagrams, Entity-
Relationship Diagram, State Transition Diagrams, Process
Specifications, Data Dictionary, Structure Chart
– object-oriented analysis and design using UML
• Use Cases, Class Diagrams, Interaction Diagrams, State
Diagrams, Package Diagrams, Activity Diagrams

Software Analysis and Design 6


Objectives (3)

• Knowledge of, and the ability to apply the principles of


design patterns and to make use of them in design
process for building proper class structures and solid
software components. (A dive into Software Architecture)

• Knowledge of , and the ability to apply, principles of user


interface design such as affordances, awareness of mental
models, visibility, mapping and feedback.

Software Analysis and Design 7


Assessment and Passing

• There are two assessment components:


– Examinations through:
• Final Exam (60 points)
There will be a practical project:
• A group project with assignments worth 30 points

Software Analysis and Design 8


Assessment and Passing
• You need to participate in at least 75% of lectures in order
to pass.
• You need to achieve 45% in exams and the assignments
and achieve an overall mark of 50%, as a example:
– You must get at least 25 points out of 55 for the exams
– You must get at least 15 points out of 45 for the projects
– You must get at least 55 points out of 100

Software Analysis and Design 9


Lectures
• Lectures will be held at:
– Please check the timetable…
• Lecture slides for each week will be made available on
LMS web site
– Lecture slides are not “lecture notes”. Notes are what you write
during lectures.
• All lecture material, worksheets and assignment work is
examinable
– It is your responsibility to ensure that you have copies of all such
materials

Software Analysis and Design 10


Practice Classes

• There will be one practice class (lab) each week


• Students are expected to attend at practice class (lab)
• During a practice class, students are expected to work
on practice problems and/or activities, which will be
distributed via the LMS web site, or on their
assignments
• Practice classes (labs) start in week 2

Software Analysis and Design 11


Recommended Reading
• The following book cover the basic material and you may use it as
main book:
– Software modeling and design_ UML, use cases, patterns, and software
architectures, Hassan Gomma (2011)
– Head First Design Patterns Building Extensible and Maintainable Object-
Oriented Software, Eric Freeman, Elisabeth Robson, O’Reilly Media (2021)
Other secondary books:
– Software Engineering, A practitioner's approach, 9th Ed., Pressman&Maxim
(2020)
– Software Engineering, A methodical Approach, 2nd Ed., Foster&Towle (2022)
– System Analysis & Design, An Object-Oriented Approach with UML, 5th Ed,
Dennis, Wixon & Tegarden (2015)
– Software Requirements: Best Practices, 3rd Ed., Wiegers&Beatty (2013)
• A list of further useful books will be provided in the lessons. Copies
of the main book you may find in photocopy room.

Software Analysis and Design 12


What is Software Engineering?
Group Exercise

• Break into groups of 3 or 4 (i.e. your neighbours, don’t


move around the room)
• Take 5 minutes to write down a definition of software
engineering - this can be in point form
• After 5 minutes, we will collect definitions from the class

Software Analysis and Design 13


What is Software Modeling?
• Modeling → Ancient Egypt, Rome, and Greece
to provide small-scale plans in art and architecture.
• Modeling is used in Science and Engineering
to provide abstractions of a system at some level of
precision and detail.

Software Analysis and Design 14


Software Design
• What is design?
– noun: mental plan, preliminary sketch or outline
– verb: to conceive in the mind; to invent
• What is software design?
– As a product
• Output of design process
– As a process
• Approach to doing design
• Context of Software Design

• o

Software Analysis and Design 15


Software Design Process
• Software life cycle (a.k.a. software process)
– Phased approach to software development
• Software life cycle (a.k.a. process) models
– Waterfall – limitations of Waterfall Model
– Incremental - evolutionary prototyping
– Exploratory - throwaway prototyping
– Spiral model – risk driven process model

Software Analysis and Design 16


Software Life Cycle Model
• Requirements Analysis and Specification
– Analysis of user's problem
– Specification of "what" system shall provide user
• Architectural Design
– Specification of "how" system shall be structured into components
– Specification of interfaces between components
• Detailed Design
– Internal design of individual components
• Design of logic and data structures
• Coding
– Map component design to code
• Software Testing
– Unit, Integration, System and Acceptance
• Software Maintenance
– Modifications (Fixes, Improvements, Changes, Redesigns)
Software Analysis and Design 17
Software Processes

Software Analysis and Design 18


Process
Flow

Software Analysis and Design 19


The Waterfall Model

Communication
project initiation Planning
requirement gathering estimating
scheduling
Modeling
tracking
analysis Construction
design code Deployment
test delivery
support
feedback

Software Analysis and Design 20


The V-Model

Software Analysis and Design 21


The Incremental Model

increment #n
Communi c a t i on
Pl a nni ng
M ode l i ng
analysis Cons t ruc t i on
design code De pl oy me nt
t est de l i v e ry
f e e dba c k

delivery of
increment # 2 nth increment

Communi c a t i on
Pl a nni ng
M ode l i ng
analysis Cons t ruc t i on
design code De pl oy me nt
t est de l i v e ry
f e e dba c k
delivery of
increment # 1 2nd increment
Communi c a t i on
Pl a nni ng
M ode l i ng
analysis Cons t ruc t i on

delivery of
design code De pl oy me nt
t est de l i v e ry

1st increment
f e e dba c k

project calendar time


Software Analysis and Design 22
Evolutionary Models: Prototyping

Quick plan
Quick
Communication plan
communication
MModeling
odeling
Quick design
Quick design

Deployment Construction
Deployment
Delivery
delivery &
& Feedback of prototype
Construction
feedback Construction
of
of prototype
prototype

Software Analysis and Design 23


Evolutionary Models: The Spiral
planning
estimation
scheduling
risk analysis

communication
modeling
analysis
design
start

deployment
delivery construction
code
feedback test

Software Analysis and Design 24


Evolutionary Models: Concurrent
none
Modeling activity

represents the state


Under of a software engineering
development activity or task

Awaiting
changes

Under review
Under
revision

Baselined

Done

Software Analysis and Design 25


The Unified Process (UP)

Elaboration
elaboration

Inception
inception

construction
Release
software increment
transition

production

Software Analysis and Design 26


UP Phases
UP Phases
Inception Elaboration Construction Transition Production
Workflows

Requirements

Analysis

Design

Implementation

Test

Support
Iterations #1 #2 #n-1 #n

Software Analysis and Design 27


UP Work Products
Inception phase
Vision document
Elaboration phase
Initial use-case model
Initial project glossary Use-case model
Construction phase
Initial business case Supplementary requirements
Initial risk assessment. including non-functional Design model Transition phase
Project plan, Analysis model Software components
phases and iterations. Software architecture Integrated software Delivered software increment
Business model, Description. increment Beta test reports
if necessary. Executable architectural Test plan and procedure General user feedback
One or more prototypes prototype. Test cases
Incept io
n Preliminary design model Support documentation
Revised risk list user manuals
Project plan including installation manuals
iteration plan description of current
adaptedworkflows increment
milestones
technical work products
Preliminary user manual

Software Analysis and Design 28


THE END

Software Analysis and Design 29

You might also like