Download as pdf or txt
Download as pdf or txt
You are on page 1of 20

Software Engineering and Design Pattern

Introduction

D r. R u d r a P r a t a p D e b N a t h

Associate Professor
Department of Computer Science and Engineering
University of Chittagong

Email:rudra@cu.ac.bd

5th Semester 2022


Outline

Course Overview
Why Software Engineering ?
Types of Software
Course Overview

Organization
Google Classroom:
https://classroom.google.com/c/NDg0MjE5ODQxOTMw?cjc=e5wc2nr
Facebook Group: Same one used in our database classes
All course materials will be on the group
(slides, exercise sheets, self study, quizzes, etc….)
Course Overview

Agreements (From my sides)


Take your own responsibilities
Maintain the professionalism
Active participation in the classes, assignment, tutorials and exams
Cooperation instead of competition. Appreciate and acknowledge others
Be careful with plagiarism
Course Overview
Study Process
Course Setup

Lectures
Slides will be used during the classes
Make the class interactive by responding and asking
Questions may be (in)correct, but you will learn a lot
Ask questions right away during lectures
Actively participate in assignments
For better understanding, read chapters in the book or search on the Web
after/before the lecture
Course Overview
3 Credits – 45 Lectures
Knowledge:
Student should achieve knowledge on the following theories and methods:
System development methods
Object-oriented modelling in analysis and design
Modeling with patterns
Skills:
Student should achieve the following skills:
Precise use of concepts and modeling language
Model requirements
Model the design of the system
Project management techniques
Competencies:
should be able to apply concepts, patterns and modelling language to describe and implement a specific system
that solves a well-defined task.
able to maintain integrity and professionalism
Course Materials

Object Oriented Analysis & Design


---Lars Matheassen et al.
Software Engineering
--- Ian Sommerville
Journal and conference papers
Lecture slides
……………
Why Software Engineering?

Software is everywhere (simple embedded system to complex worldwide information


system)
Society is now totally dependent for its efficient performing on software-intensive systems
Software for Infrastructure, power, transport, telecommunication, financial system,
government, business
Software for high-quality life (elderly people)
More advanced software is required to address new challenges
Tell me more
Why Software Engineering?
A modern car (Third era of cmputing)
Includes 50-100 processors
Interconnected by a computer network
Controlled by Electronic Control Module (ECM)
Examples of car components with processors
Engine control, transmission, power steering, ABS, airbag
controllers
Driver assistance systems such as stability control, steering
(traction control)
Alarm and central door locking with the remote control
Infotainment such as GPS, radio, MP3 player
Other systems like radar and autonomous vehicle control
This is consistent with the traditional description of
ubiquitous computing (a single user using many
computers)
Why Software Engineering?

Cooperative driving (fourth era of computing)


support smart traffic
More than one car and information exchange between them
Data exchange between vehicles and infrastructures
A communication system provides drivers with real time information on road weather, road
conditions and incidents
A roadside weather monitoring station can communicate with vehicles to warm drivers of dangerous road conditions
ahead
Other methods for capturing, storing, relaying and displaying traffic and weather data
Cooperative driving based on communication and data exchange between vehicles and road
network systems aims to improve traffic safety
This will help drivers and vehicles anticipate traffic more effectively and decide accordingly on
issues such as the right speed and choice of route
Why Software Engineering?
9 software projects totaling $96.7 million: Where The Money Went
[Report to Congress, Comptroller General, 1979]

Delivered, but never


successfully used
45%

Used as delivered 2%
Paid for, but
Usable w. rework 3% not delivered
30%
Used w. extensive rework,
but later abandoned
20%
Why Software Engineering?

Software Engineering: Efficient and effective techniques of developing


complex software system to maintain our society and continue to provide
high quality life of our citizens.
The software system should be
maintainable
reliable and secure
efficient
meet the needs of their users
Software Engineering: A Problem Solving
Activity
Analysis: Understand the problem and break the problem into pieces
Synthesis: Put the pieces together into a large structure
For problem solving we use
Techniques (methods):
Formal procedures for producing results using some well-defined
notation
Methodologies:
Collection of techniques applied across software development and
unified by a philosophical approach
Tools:
Instrument or automated systems to accomplish a technique
Software Engineering: Definition

Software Engineering
Is an engineering discipline that is concerned with all aspects of
software production form the early stage of system specification
through maintain the system after it has gone into use.
all aspect- not just technical process of development; project
management, development tools, methods, documentation to support
software production
is a collection of techniques, methodologies, and tools that help with
the production of
a high quality software system
with a given budget
before a given deadline
Software Process Activities

Software specification: defining what the software should do


Software development: designing and implementing the software
Software validation: checking the acceptability of the software,
whether it meets customer requirements
Software evolution: evolving the software to reflect the clients and
market requirements
Types of Software
Several types of software and no universal software techniques
for developing software.
Stand-alone applications: application systems run on a local
computer
Transaction based system: applications run on a remote computer
and accessed by users from their own terminals or PCs; e-
commerce
Embedded control system: software control systems that control
and manage hardware devices; software in mobile phone,
microwave oven, vending machine, car
Types of Software
Data collection systems: collect data from different sensors and
send data to other systems for processing
Batch processing system: business system are designed to
process data in large batches; ETL
Entertainment system: applications to entertain users: games
Systems for simulation and modeling : developed by scientists
and engineers to model physical processes and situations
Types of Software
System of systems: a system that deal with civil emergencies,
such as flooding and large-scale accidents by integrating
information from police, ambulance, fire and coastguard services.
Self-study
From Sommerville’s first chapter:
Software engineering ethics: important for final exam
Different case studies given in Chapter 1. Check how to write a
case study. Important to write your own use cases.

You might also like