0% found this document useful (0 votes)
92 views

Lecturer 1 - Introduction To Software Engineering

This document provides an overview of an introductory software engineering course. It outlines the course description, objectives, learning outcomes, evaluation methods, schedule, policies, and introduces some key concepts about software and its importance. The course aims to guide students through the software development process and teach different stages of the software lifecycle. It will cover topics such as process models, requirements engineering, system design, implementation, and testing.
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)
92 views

Lecturer 1 - Introduction To Software Engineering

This document provides an overview of an introductory software engineering course. It outlines the course description, objectives, learning outcomes, evaluation methods, schedule, policies, and introduces some key concepts about software and its importance. The course aims to guide students through the software development process and teach different stages of the software lifecycle. It will cover topics such as process models, requirements engineering, system design, implementation, and testing.
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
You are on page 1/ 31

Software Engineering

Course’s Code: CSE 305


Introduction to Software Engineering
(Chapter 1)
Course Description

 Software Engineering course is aimed at helping you build up an


understanding of how to develop a software system from scratch by guiding
them through the development process.

 You will learn different stages of Software Development Life Cycle


(SDLC).

 The course will introduce students to the different software


development process models, software requirements engineering process,
systems analysis and design as a problem-solving activity, building and
testing of software.

13 October 2021 2 Software Engineering Lec-1


Course Objectives

 After finishing the course, you will achieve the following goals:

 To acquire a thorough understanding of Software Engineering.


 To use the techniques, skills, processes and modern engineering
tools necessary for software engineering practice.
 To apply software engineering perspective through software design
and construction, requirements analysis, verification, and validation.
 To work as an individual and as part of a team to develop and
deliver quality software.

13 October 2021 3 Software Engineering Lec-1


Course Learning Outcomes
 CLO1: To acquire a thorough understanding of Software Engineering

 CLO2: To acquire experiential learning opportunities to solve real-world pro


blems.

 CLO3: To use the techniques, skills, processes and modern engineering tools
necessary for software engineering practice.

 CLO4: To apply software engineering perspective through software design


and construction, requirements analysis, verification, and validation.

 CLO5: To work as an individual and as part of a team to develop and deliver


quality software.

 CLO6: To achieve a sense of professionalism.

 CLO7: To train and improve self-study ability


13 October 2021 4 Software Engineering Lec-1
Books and teaching materials

 [1]. Roger S. Pressman, Bruce R. Maxim (2015). Software Engineering :


A Practitioner’s Approach. (Software Engineering). McGraw-Hill Education:
New York, NY.

 [2]. Ian Sommervill (2016). Software Engineering. (Software Engineering).


Pearson: Boston.

13 October 2021 5 Software Engineering Lec-1


EVALUATION

Type Content Method Weights

Regular (1) Practice and Theory Assignments 25%


Assesment

Summary (2) Project Presentation Group 25%


Presentation

(3) Final Examination Practical Test 50%


on Machine in
90’
Total: 100%

13 October 2021 6 Software Engineering Lec-1


SCHEDULE
 Week 1: Chapter 1. Introduction to Software Engineering:
Definition of Software Engineering Discipline, The Software Process, Software
Engineering Practice, Chapter 2. Software Process Models: Prescriptive Process
Models

 Week 2: Chapter 2. Software Process Models: Specialized Process Models, The


Unified Process, Chapter 3. Agile Software Development: Agility and
Agile Process, Practice : Lab on process models and agile software development

 Week 3: Chapter 3. Agile Software Development: Extreme Programming,


Scrum, Chapter 4. Requirements Engineering: Functional and
Non-Functional Requirements, Requirements Engineering Processes
Practice : Lab on Requirements Engineering – Part-I

 Week 4: Chapter 4. Requirements Engineering: Requirements elicitation and


analysis, Requirements specification, Requirements validation, Requirements
change, Practice : Lab on Requirements Engineering –Part-II

13 October 2021 7 Software Engineering Lec-1


SCHEDULE
 Week 5: Chapter 5. System Modelling: Context models, Interaction models,
Structural models, Behavioral models, Software Architecture
Practice : Lab on Software Design and Implementation – Part-I

 Week 6: Chapter 6. Software Design: Design Concepts, Object-oriented


Design Concepts, Data/Class Design elements, Interface Design Elements
Practice : Lab on Software Design and Implementation – Part-II

 Week 7: Chapter 6. Software Design: Component-Level Design Elements,


Deployment-Level Design Elements, Chapter 7. Software Implementation and
Testing: Implementation Issues, Software Testing Strategies
Practice : Lab on Software Design and Implementation – Part-III

 Week 8: Chapter 7. Software Implementation and Testing: Test-Driven


Development, Practice : Lab on software Testing Strategies and System
Building, Group Project Presentation.

 Week 9/10/11: Final Exam

13 October 2021 8 Software Engineering Lec-1


COURSE POLICIES

 - If a student is absent >=20%, then the student will not be allowed to ta


ke the final examination.
 - The practical and theoretic exercises/assignments score is the average
of all practical and theoretic exercises/ assignments.
 - Copying from others will carry minus 100% of the points .

13 October 2021 9 Software Engineering Lec-1


What is Software?
 Computer programs and associated documentation. Software products may
be developed for a particular customer or may be developed for a general
market.
 More than just a program or code
 Computer Instructions
 Data Structures
 Documentation
 Models
 Program
 typically contains 50-500 lines of code
 developed by one person
 Software System
 Software System is much larger, typically consisting of many programs
working together
 needs a team of software engineers
 need project management and organization
 need a software life cycle
 phased approach to software development
13 October 2021 10 Software Engineering Lec-1
Software Products

 Generic products
 Stand-alone systems that are marketed and sold to any customer
who wishes to buy them.
 Examples – PC software such as editing, graphics programs, project
management tools; CAD software; software for specific markets
such as appointments systems for dentists.
 Customized products
 Software that is commissioned by a specific customer to meet their
own needs.
 Examples – embedded control systems, air traffic control software,
traffic monitoring systems.

13 October 2021 11 Software Engineering Lec-1


Types of Software

 System software: compilers, file management utilities


 Application software: stand-alone programs for specific needs.
 Engineering/scientific software: such as automotive stress analysis,
molecular biology, orbital dynamics etc.
 Embedded software resides within a product or system. (key pad
control of a microwave oven, digital function of dashboard display in a
car)
 Product-line software focus on a limited marketplace to address
mass consumer market. (word processing, graphics,
database management)
 Web Apps (Web applications) network centric software.
 AI software uses non-numerical algorithm to solve complex
problem. Robotics, expert system, pattern recognition game playing

13 October 2021 12 Software Engineering Lec-1


Types of Software

 Open world computing—pervasive, ubiquitous, distributed


computing due to wireless networking. How to allow mobile devices,
personal computer, enterprise system to communicate across
vast network.
 Open source—”free” source code open to the computing community
(a blessing, but also a potential curse!)
 Also …
 Data mining
 Grid computing
 Cognitive machines
 Software for nanotechnologies

13 October 2021 13 Software Engineering Lec-1


Why Software is Important?

 The economies of ALL developed nations are dependent on software.

 More and more systems are software controlled


 transportation, medical, telecommunications,
military, industrial, entertainment

 As we know, software is quickly becoming an integral part of human


life as we see more and more automation and technical advancement.

 software industry needs to continue to learn better ways to build software.


It were to become an integral part of human life

 Software engineering is concerned with theories, methods and tools for


professional software development.

13 October 2021 14 Software Engineering Lec-1


Feature of Software
 Software is developed or engineered
 Not manufactured in the classical sense
 Software doesn’t wear out but it deteriorates (due to change).
 Software can be custom-built, and/or component based software

13 October 2021 15 Software Engineering Lec-1


What is Engineering?

 Engineering is ...
 The application of scientific principles and methods to the
construction of useful structures and machines
 Examples:
 Mechanical Engineering
 Civil Engineering
 Electrical Engineering
 Chemical Engineering

13 October 2021 16 Software Engineering Lec-1


What is Software Engineering?
 Engineering
 Applied Science
 Electrical Engineering
 Applied Physics
 Software Engineering
 Applied Computer Science
 Software Crisis
 Software development projects were delivered late
 Software were full of errors
 Software did not satisfy requirements
 Software was difficult to maintain
 Software sizes and complexity have grown rapidly
over time

13 October 2021 17 Software Engineering Lec-1


What is Software Engineering?

 IEEE (Institute of Electrical and Engineers) definition


 “The application of a systematic, disciplined,
quantifiable approach to the development, operation and
maintenance of software; that is, the application of enginee
ring to software”

 Software Engineering is the establishment and use of sound


engineering principles in order to obtain economically software
that is reliable and works efficiently on real machines.

13 October 2021 18 Software Engineering Lec-1


Why Learn about Software Engineering?

 Software Engineering is one of our most complex things that humans have
ever done
 Suppose some civil engineers think about building a Dam.
 It's an incredible thing. It's an incredible amount of work.
 But if they got halfway through building it, and they saw a huge
crack in the concrete, they'd be able to identify and fix that.
 people would know it's not working.

 The thing about software is that, it's intangible. We can't see it, we can't see
when we've made mistakes;

 And that is why it's so important to learn about the software engineering
and follow it. It gives you the roadmap to success

13 October 2021 19 Software Engineering Lec-1


What Software Development Looks Like?

 Before we get into a software development


process, let's take a look at a process that
you might be familiar with, like building a
house.

 So, if you were to build a house,


 you'll probably reach out to a builder and
tell about your needs, like, I need two
bedrooms, I need a bigger great room, I need
a room on the basement, and etc.

13 October 2021 20 Software Engineering Lec-1


What Software Development Looks Like?

 Then, builder is going to go back, and going to create a floor plan. And
 then, he's going to show it to you the floor plan, and you might make so
me adjustment.

13 October 2021 21 Software Engineering Lec-1


What Software Development Looks Like?

 Once that is done, builder is going to create a detailed map or detailed


 plan about where the foundation is going to be, where the electricity is
 going to be, where the plugs are going to be, where the plumbing is
 going to be, and then, they're going to start building the home

13 October 2021 22 Software Engineering Lec-1


What Software Development Looks Like?

 And, as they are building the home, they're going to call the inspection
people to come, and inspect the house. For example, let's say the foundation
is done, they're going to get the foundation approved. When the plumbing is
done, they can get the plumbing approved. And so on.

13 October 2021 23 Software Engineering Lec-1


What Software Development Looks Like?
 And once the house is ready, he's going to call you to say whether,
 you like the house, Is it what you expected? And then, once you approve
it, then you're going to start, staying in that house or living in that house
and, of course, there comes the maintenance of the house.

13 October 2021 24 Software Engineering Lec-1


What Software Development Looks Like?
 Let's see how software development is similar or different than this. So,
when you're building a software, similar to building a house,
 you're looking at requirements or you're looking at what exactly you
need to build.
 And during that time, you will do analysis of different options or
 you might do a prototype and show it to your customer, and just say, "Is t
his what you're looking for?" But at the end of this phase, you have exact
ly what you're looking to build.

13 October 2021 25 Software Engineering Lec-1


What Software Development Looks Like?

 Then comes the architects and the software developers. They're going to
design the system, they're going to architect the system, and say, what are
the different components that they need to build? And how they're going
to work together?

13 October 2021 26 Software Engineering Lec-1


What Software Development Looks Like?

 Once the design is done, they're going to start coding, and start doing
unit testing. So, each of the sub-teams are going to start building their
components and test it

13 October 2021 27 Software Engineering Lec-1


What Software Development Looks Like?

 Once all the components are ready, they're going to bring all of these
components together, and do integration testing or card verification. And,
they will do functional testing.

13 October 2021 28 Software Engineering Lec-1


What Software Development Looks Like?

 And when the software is ready from the developer point of view, then
they're going to invite the user, and they will do a testing called, UAT, User
Acceptance Testing, in which a user says, "Yup, this is what I was looking
for." or "No, this is not what I was looking for."

13 October 2021 29 Software Engineering Lec-1


What Software Development Looks Like?
 And then, once everything is done, then the software goes into production
, which means the user is going to start using, and they might ask for
some changes, or you may have to fix some defects, and so on. So, that's
called the operation and maintenance.

13 October 2021 30 Software Engineering Lec-1


What Software Development Looks Like?
 So, as you can see, the process is quite similar to building a house

13 October 2021 31 Software Engineering Lec-1

You might also like