Presentation is loading. Please wait.

Presentation is loading. Please wait.

Introduction To software engineering

Similar presentations


Presentation on theme: "Introduction To software engineering"— Presentation transcript:

1 Introduction To software engineering
CS 360 Lecture 1

2 Introduction to Software engineering
If you don’t understand it, you can’t program it. If you can’t measure it, you can’t improve it.

3 Software engineering Definition:
SWE covers all aspects of building software systems, along with management issues such as directing teams, scheduling, and budgeting.

4 Introduction to Software engineering
More and more systems are software controlled

5 Introduction to Software engineering
That’s good news for us!

6 Software engineering Software Jobs:
1990: 778,000 1995: 1,083,000 2010: 2,095,000 2014: 2,501,000 2016: 3,360,000 2018: 4,200,000 Software jobs growing faster than any other jobs. 2014: 2.2% of all U.S. employment Average salary for new employees in the software industry: ~$70k Average salary per person in the U.S.: ~$40k

7 Software Life-Cycle costs
Software costs more to maintain than it does to develop.

8 Software Engineering Body of Knowledge
Computing Fundamentals Algorithms and Data Structures Computer Architecture Operating Systems Mathematical Foundations Software Product Engineering Requirements Engineering Software Design Software Coding Software Testing Software Operations & Maintenance Software Management Project Process Management Risk Management Quality Management Configuration Management Dev. Process Management Acquisition Management Software Domains Artificial Intelligence Database Systems Human-Computer Interaction Numerical & Symbolic Computing Computer Simulations Real-Time Systems

9 Software Engineering vs. “other” engineering
How is software engineering different than other types of engineering? Exists entirely on and bounded by the rules of hardware. Software logic is not bounded by physical laws. Capacity to incorporate massive complexity. Does not have problems due to product aging.

10 Software Engineering Why is software engineering difficult?
You need to understand the problem domain You need to understand the software domain Software is formal Real world is informal

11 Computer Science Computer Scientist:
Proves theorems about algorithms, designs languages, defines knowledge representation schemes, etc.

12 Software Engineer Software Engineer:
Creates the design for the real-world problem

13 Software Developer Software Developer:
Generates the code for the real-world problem

14 Software Engineering Software engineering is concerned with cost- effective software development. First determine the needs of the client. These needs/requirements may change over time. Then design, construct, test, add features to the software system, and repeat. Each member of the CS 360 project teams will be providing roles computer scientist, software engineer, and software developer.

15 Software engineering diversity
The software engineering methods and tools used depend on: The type of application being developed The requirements of the client The background of the development team In this class, the teams will be diverse, and the client’s requests may change over time.

16 Software Development Process Models

17 Software Process: Quality control steps in all software development
Feasibility study and planning Gathering/validating the requirements System/program design and software modeling Implementation Testing Bug fixing, feature enhancements, and maintenance These steps may be repeated many times during the development cycle.

18 Software Process Step: Feasibility
The feasibility study

19 Software Process Step: Requirements
Requirements define the function of the system from the client’s viewpoint. Requirements establish: System functionality and scope Constraints Dependencies Goals Development process

20 Software Process Step: Requirements
The requirements step is divided into tasks: Requirements analysis Meetings, documentation, process specifications, use cases, etc. Requirements definition Description of the services that the system should provide. Requirements specification Functional requirements Inputs, behavior, outputs Non-functional requirements Criteria used to judge the operation of the system Ex: Security, performance, reusability, stability, usability, etc.

21 Software Requirements Example
I want to create a website that hosts many funny pictures of dogs. 1. List examples of functional requirements (Defined behavior/technical details) 2. List examples of non-functional requirements (System judgement criteria/constraints)

22 Software Process Step: System/Program Design and modeling
Design describes the system from the software developer’s viewpoint. System design: System architecture hardware and software that matches requirements. Program design: Software functions that can be converted into executable programs. Software design patterns Models are used to represent requirements, system architecture, and programming design. Unified Modeling Language (UML)

23 Software Process Step: Implementation
Implementation (coding): The software design is realized as a set of programs. Software May be written by the development team Modified from existing components

24 Software Process Step: Testing
Testing stages: Unit testing Integration testing System testing Acceptance testing

25 Software engineering Processes
Every software project will include the previous basic processes, in some shape or form, but: The steps may be formal or informal The steps may be carried out in different order Your job is to implement, in as much detail as possible, the processes described to develop a good software product. Organization/planning Gathering/validating requirements Developing/verifying component/system designs Implementing/source code development Testing Repeat… All details of the software engineering process should be documented in the milestone reports.


Download ppt "Introduction To software engineering"

Similar presentations


Ads by Google