Document - Oman College of Management & Technology

advertisement
Oman College of Management & Technology
Department of Computer Science
Baraka, Oman
Tel. (968) 26893366
Fax (968) 26893068
Course Code : 503405
Course Name : Software Engineering
Semester / Session : First 2015/2016
Credit Hours : 3 Hrs
Course Prerequisites : 502301
Class sections and Lecturers:
Section 1 : 13:30 – 14:30 Mon, Wed 206 Dr. Jai Arul Jose G.
Instructors Office Hours:
Email: g.jai.areul@omancollege.edu.om
Office Hours: Sun-Thu: 08.00 AM - 03:00 PM
Website: www.omancollege.edu.om/
Objectives:
•
The understanding of different software processes, differences among them as well as
the best scenario(s) to select each one.
• How to elicit requirements from a client and how to convert them into specifications,
through revision, checking for correctness, completeness, etc.
• Learn the design methodologies and process in the large, including principled choice of
a software architecture, the use of modules and interfaces to enable separate development,
and design patterns.
• Understanding good software engineering practices, including requirements gathering
and documentation, communications among the software project team and contracts.
• Learn the various quality assurance or testing techniques, including unit testing,
functional testing, integration and systems testing .Etc.
Course Description:
Software engineering is the branch of computer science that creates practical, organized,
well-developed, cost-effective solutions to computing and information processing
problems, preferentially by applying scientific knowledge, and developing software
systems.
This course covers the fundamentals of software engineering, including understanding
system and software requirements ( how to collect, prioritize, inspect and analyze them),
finding appropriate engineering compromises, effective methods of design, coding, and
testing, team software development, and the application of engineering tools (i.e. CASE
tools).
Skills
• Creating a project plan, and requirement documents.
• Creating and analyzing design models
• Making engineering tradeoffs
Experience
• Working in a team
• Putting software process into practice
• Learn how to communicate with clients (in principles).
Learning Outcomes
After completing this course the student should be able to:
• Define the Concepts and terminology of systems and software engineering.
• Recognize the difference between the different approaches and techniques of software
engineering.
• Understand the principles and techniques underlying the process of planning and
managing software projects.
• Use the appropriate methods and tools for analyzing problems for which software is to
be developed.
• Recognize the importance of prototyping and modeling techniques and technologies in
the process of software development.
• Apply the appropriate software design methodologies, and models.
• Apply one or more of the available CASE tools to some aspects of building information
systems.
• Understand the application of computing in a business context.
• Solve a wide range of problems related to the analysis and design software.
• Analysis and design of a system of small size.
• Be able to design, write and debug computer programs in appropriate languages.
• Plan and undertake a major individual project, prepare, deliver coherent and structured
verbal and written technical report.
• Be able to display an integrated approach to the development of communication skills,
use IT skills and display mature computer literacy, strike the balance between self
reliance and seeking help when necessary in new situations, and display personal
responsibilities by working to multiple deadlines in complex activities.
Week
1.
2.
3.
4.
Subject
Software Engineering and System Engineering
• What is software?
• What are the attributes of good software?
• What is software engineering and why is it important?
The Software Engineering Process
• What is software engineering process?
• Software Process Models
1. The Waterfall model.
2. Evolutionary development
3. Incremental development
4. Spiral development
5. Unified process model
• Software Process Activities
1. Software Specification
2. Software Design
3. Software Implementation
4. Software Validation
Notes
5.
6.
7.
8.
9.
10.
11.
12.
13.
5. Software evolution
• CASE tools
• Rapid development techniques
Software Project Management
• What is software project management?
• Project Management activities
• Proposals and feasibility studies
• Project Planning
• Project costing
• Project Staffing
• Project scheduling
• Risk Management
Software Requirements
• What is software requirement?
• User vs. System requirements
• Functional vs. Non-functional requirements
Requirements Engineering Processes
• The Requirement Engineering Process
• feasibility study
• What is requirement engineering
• Requirements elicitation and analysis
• Stakeholders
• Problems
• A generic process model
• Viewpoint-oriented elicitation
• Scenarios
• System modeling: what and why?
System Models
• Perspectives and types of system models
• Context Models.
• Behavioral Models
• Data Models
• Object Models
Software Design
• Introduction
• _What is software design?
• _The design process
• _Specification and design
• _Design description
• _Design Quality
Architectural Design
• _What is the architectural design
• _Advantages of architectural design
• _Activities
• _Architectural models
• _Architectural design and non-functional requirements
• _Phases of architectural design
• _System Structuring models
• _Control Models
• _Modular Decomposition Models
• _Domain Specific Models
Distributed systems architectures
First Exam
Second Term Exam
14.
15.
16.
• _Client-server architectures
Object Oriented design
• _Objects, Object classes and UML notations
• An Object Oriented design process
Software Testing
• System Testing
• Component testing
• Test case design
• Test automation
Review
Final Exam
Teaching Resources
• Main Textbook : Sommerville, Ian. Software Engineering 8th ed. Addison-Wesley,
• Recommended Books
1. Software Engineering, a practitioner approach, by Pressman, 6th edition.
2. G.Booch, Object-Oriented Analysis and Design, Addison Wesley, 1998
3. Yourdon, Modern Structured Analysis, Yourdon press computing series, 1998
4. J.Rumbaugh OMT Insights: Perspective on modeling JOOP, textbook binding,
1997
5. E. Gamma, R. Helm, R. Johnson, and J.Valissides, design patterns, 1995
Marking Scheme
1st Exam 20% 2nd Exam 20% Practical exam 10% Final Exam 50%
NOTES:




Attendance to lectures is obligatory according to the University Rules.
Assignments are required to be solved independently to assist students in gaining
programming skills and helping them to prepare to the practical exam.
Any given assignment must be worked out by the student himself.
Cheating is a religious and ethical crime and any case of cheating will be treated
according to the university rules
Download