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

Lec 1 Overview and Basic Tasks

The document provides an overview of software engineering, defining software types and outlining the basic tasks involved in software projects, such as feasibility studies, requirement gathering, design, development, testing, deployment, and maintenance. It emphasizes the importance of a structured engineering process to manage the complexity of software systems and the need for a document management system to facilitate collaboration among team members. Key features of a document management system include version control, document sharing, and accessibility.

Uploaded by

q97j7zbxdf
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
5 views

Lec 1 Overview and Basic Tasks

The document provides an overview of software engineering, defining software types and outlining the basic tasks involved in software projects, such as feasibility studies, requirement gathering, design, development, testing, deployment, and maintenance. It emphasizes the importance of a structured engineering process to manage the complexity of software systems and the need for a document management system to facilitate collaboration among team members. Key features of a document management system include version control, document sharing, and accessibility.

Uploaded by

q97j7zbxdf
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 7

Software engineering

Overview and Basic tasks


Dr Hamed Hemeda
What is software?
• Software is the programs executed by computers. It may be system
software such as operating systems or application software such as
games, word-processing, database systems and electronic commerce
systems
• Software types(according to Lehman)
• Static/Specified(S-type): well-defined specification and obvious solution.
Example: Calculator program
• Procedural (P-Type): The controlling procedures are well-defined, but the
solution is not so obvious. Example: chess playing
• Evolving(E-Type): Specification and solution are strongly linked to
environment. Example: E-Commerce system
Software engineering projects
• What is software engineering and what is a software engineering
project?
• Software engineering is the developing of software product for specific
purposes using scientific principles and methods within the constraints of
allowed cost, time and other resources.
• Software engineering project is activities and tasks done by a team to
produce a software product using the principles and methods of software
engineering
• In any engineering project: There should be a plan: What to do? When and
how to do it?
Software engineering basic tasks
• What are the basic tasks done in a software project?
• Feasibility study: Is it possible economic project?
• Requirement gathering: Who are the customers? What they want? What they need?
• High-level design: What are the platforms? On premise or on cloud? What are the
modules of the system and how they interact without entering in the details of each
module.
• Low-level design: assign modules to team members. Design of each module. Module
design refinement until it becomes clear how it is implemented in code.
• Development: implementing the design into code by programming the design
• Testing: test your own code, test different parts or code is working with other parts,
test if everything is working after integration of all/new modules
• Deploying: Setup hardware, install software, training
• Maintenance: While the system is running, collect and sole problems and errors
Software engineering basic tasks: other terms
• Feasibility study: Is it possible economic project?
• Requirements engineering: customers? What they want? What they need?
• User interface design: What will the user see? How will he interact?
• Architectural design: which modules and how they interact.
• Detailed design: planning how of each module work.
• Programming: Implement each module in code
• System integration: Collecting modules to build the whole product
• Validation: Are we building the right product?
• Verification (testing): Are we building this X right?
• Production: install, administer, and maintain
Engineering software development process?
• Why?
• Because software systems is becoming large and complex.
• To get scalable system
• To get cost effective systems in the allowed time
• To deal with dynamic nature of requirements change and system update
• To obtain quality in software product
• How?
• Engineering principles and methods/techniques for doing each of the basic
tasks
• Process model: An overall plan or strategy for starting, working on, finishing
all the required basic tasks.
Document management system
• While working as a team on the preceding tasks, we need and produce many
documents. A document management system is needed to manage these
documents. What are the feature needed by a document management system for
software engineering process?
• People can share documents so that they can all view and edit them.
• Only one person can edit a document at a given time.
• You can fetch the most recent version of a document.
• You can fetch a previous version of a document by specifying either a date or version number.
• You can search documents for tags, keywords, and anything else in the documents.
• You can compare two versions of a document to see what changed, who changed it, and
• when the change occurred. (Ideally, you should also see notes indicating why a change was
• made, although, that’s a less common feature.)
• You should have the ability to access documents over the Internet or on mobile devices.

You might also like