Sie sind auf Seite 1von 4

CIS 240 SOFTWARE ENGINEERING

Course Code : CIS 240 Course Name : Software Engineering Credit Hours : 3 Hrs Course Prerequisites : CIS 102

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). The course will include a toy or prototype project providing the opportunity to practice engineering knowledge, skills, and practices in semi realistic development settings within the academic classes.

Course objectives
Knowledge
The understanding of the 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.

the various quality assurance or testing techniques, including unit testing, functional testing, integration and systems testing, ..etc. Skills
Creating Creating Making

Learn

a project plan, and requirement documents. and analyzing design models

engineering tradeoffs

Experience
Working in

a team into practice

Putting software process Learn

how to communicating 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.

Content
Software Engineering and System Engineering (Week 1) What is software? What are the attributes of good software? What is software engineering and why is it important? The Software Engineering Process (Week 2, 3, 4) What is the software engineering process? Software Process Models (Week2) 1. The Waterfall model. 2. Evolutionary development 3. Incremental development 4. Spiral development 5. Unified process model Software Process Activities (Week 3) 1. Software Specification 2. Software Design 3. Software Implementation 4. Software Validation 5. Software evolution CASE tools & Rapid development techniques (Week 4) Software Project Management (Week 5) What is software project management?

Project Management activities Proposals and feasibility studies Project Planning, costing, Staffing, scheduling, and Risk Management Software Requirements (Week 6, 7, 8, 9) What is software requirement? User vs. System requirements Functional vs. Non-functional requirements Requirements Engineering Processes (Week 6, 7) What is requirement engineering Requirements elicitation and analysis The Requirement Engineering Process A generic process model Viewpoint-oriented elicitation System modeling: what and why? System Models (Week 8, 9) Perspectives and types of system models Context, Behavioral, Data, and Object Models Software Design (Week 10) What is software design? The design process Specification and design Design description Design Quality Architectural Design (Week 11) What is the architectural design Architectural Activities and models Architectural design and non-functional requirements Phases of architectural design System Structuring models and Control Models Modular Decomposition Models Domain Specific Models Distributed systems architectures (Week 12, 13) Client-server architectures Object Oriented design Objects, Object classes and UML notations An Object Oriented design process Software Testing (Week 14) System Testing Component testing Test case design Test automation Grading Policy First Exam (Theoretical) 20% Second Exam (Theoretical) 20% Project 20% Final Exam (Theoretical) - 40% Makeup exams will be offered for valid reasons only. Makeup exams may be different from regular exams in content and format.

Attendance Policy: Lecture attendance is mandatory. Students are allowed maximally of 15% absentia of the Text Book: Sommerville, Ian. Software Engineering 8th ed. Addison-Wesley

Das könnte Ihnen auch gefallen