THE UNIVERSITY OF LAHORE
Course Outline
Session 2014-15
CS-4347 Introduction to Software Engineering
SCU 3 Credit(s)
Co-requisite (s) None
Pre-requisite(s) Object Oriented Paradigm/Programming (CS-2135)Programming Fundamental (CS-1012)
Computer Programming (CS-1101)
Weekly tuition pattern 3 session lecture (60 min)
Teaching Team
Dr. Ahmad Salman PhD(Computer and Systems Sciences) Atif Ikram MSCS, MS Quality Management
1-Course Description
Software engineering is the branch of computer science that creates practical, cost-effective solutions to computing and information processing problems, preferentially by applying scientific knowledge, developing software systems in the service of mankind. This course covers the fundamentals of software engineering, including understanding system requirements, finding appropriate engineering compromises, effective methods of analysis, design, coding, and testing, team software development, and the application of engineering tools. The course will combine a strong technical focus with a project providing the opportunity to practice engineering knowledge, skills, and practices in a realistic development setting with a real client.
2-Objectives
The goal of this course is to:
1. Enable the students to apply, software engineering practices and knowledge within the software development environment.
2. Teach various software development models and phases of software development life cycle.
3. Provide Understanding of good software development practices for
requirements elicitation, specification documentation, plans and uml based principle analysis and design artifacts.
4. Provide concepts of project management, change control, quality assurance and software testing techniques.
3-Outcomes
At the successful completion of this course students should be able to:
1. To elicit, analyze and specify software requirements, creating analysis and design and testing artifacts along with a functional prototype of a hands-on Team Projects.
2. Demonstrate an understanding of the SDLC and proper contents of project management plans, SRS, technical and user manual etc.
3. Use significant tools such as Prototyper, blamsiq, Smart Draw, MS Project, IBM Rational Rose, Visio etc to create software prototype, uml use case model, class diagram, collaboration diagrams, component and deployment diagrams and GANTT chart etc.
4. Use project management skills along with an ability to function effectively on teams.
1. Presentation by lecturer
2. Class Activities and case study assignments 3. Group project
4. Exams and Quiz
5-
Course Duration
This course will be held three times a week of 1 hour class duration (lecture).
6-
Course style
The course will be delivered in a classroom environment.
7-
Additional Course Requirement
In addition to the objectives of this course, students are expected to gain skills which would be needed in the professional work environment. These skills include but not limited to: analysis skills, Writing code, active class participation, Presentation, and Teamwork.
8-
Text and Other Resources
8.1 Text
Ian Sommerville. Software Engineering, Addison-Wesley,(9th edition)
Software tools : prototyper/blamsiq, smart draw, ms project 2000
8.2 Other Resources
Software Engineering: A Practioner's Approach, Roger Pressman, McGraw-Hill, 7th Edition.
9- Course Outline
The lecturers are supposed to complete the following topics/sub-topics before the mid/final term examination as prescribed in the course outline below:
Week Lecture Topics, sub topics
1 What is software engineering, Frequently questions asked about software engineering, reasons for software failure, Software engineering diversity
2 Applications types, software engineering fundamentals, software engineering ethics
2 Software Processes
1 Software process introduction, process descriptions, plan driven and agile processes overview, software process models overview, waterfall model, incremental development, reuse oriented software engineering, Process activities
2 requirement engineering activities, design activity, software validation Testing, stages of testing, software evolution, coping with change, software prototype, incremental delivery and development, RUP model
3 Agile Software Development
1 Agile methods, principle of agile methods, agile methods applicability, agile methods problems, technical, human, organizational issues
2 Extreme programming, XP and agile principles, XP release cycle, Extreme programming practices, Requirements scenarios
4 Agile Software Development, Requirement Engineering 1 XP and change, refactoring, test first development, pair
programming, Agile project management, Scrum, scaling up and scaling out agile methods
2 Requirement Engineering introduction, types of requirements, user and system requirements, functional and nonfunctional requirements, requirement completeness and consistency,
5 Requirement Engineering
1 Nonfunctional requirements classification, goals and requirements, usability requirements, metrics for nonfunctional requirements, domain requirements
2 Requirement engineering document, agile methods and requirements, the structure of requirement document, requirement specification, ways of writing requirement specification
6 Requirements Engineering
1 Natural Language specification, guidelines for writing requirements, problem with natural language specification, structured specification, form based specification, tabular specification, requirement and design
2 Requirement engineering process, requirement elicitation and analysis, requirement discovery, interviewing, scenarios, use cases, Ethnography, requirement validation, requirement validation
7 Mid Term exam
8 System Modeling
1 System modeling introduction, types of system perspectives, context model, system boundaries, process perspective, interaction model, use case modeling
9 System Modeling, Architectural Design
1 Behavioral models, data driven modeling, activity model, event driven modeling, state machine models, model driven engineering
2 Software architecture, architectural design, architectural abstractions, architectural design decisions, architectural reuse, architecture and nonfunctional requirements,
10 Architectural Design
1 Architectural views, 4+1 view, Architectural patterns, MVC pattern, layered architecture, repository architecture, client server architecture, pipe and filter architecture,
2 Application architecture, use of application architecture, transaction processing systems, information system architecture, language processing systems
11 Software Testing
1 Program testing, program testing goals, validation and verification, defects testing, inspection, software testing process, stages of testing
2 Development testing, unit testing, component testing, system testing, automated testing
12 Software Testing
1 System testing, testing policies, test driven development process, benefits of test driven development, regression testing, release testing, requirements based testing, performance testing
2 User testing, Alpha testing, beta testing, acceptance testing, stages in acceptance testing, agile method and acceptance testing
13 Software Evolution
1 Software change, importance of evolution, evolution and servicing, Evolution processes, emergency change requests, Agile methods and evolution, handover problems
2 Maintenance types, maintenance effort distribution, maintenance costs, maintenance cost factors,
14 Project Management
1 Project management, success criteria for projects, management activities, risk management
2 Risk management process, managing people, software pricing, factors effecting software pricing
15 Project Management
project scheduling process, tasks dependencies, staff allocation
16 Final term exam
10-
Assessment Criteria
No. Assessment Percentage
1. Mid Exam 25%
2. Final Exam 45%
4. Class Activities 10%
5. Assignments 15%
Total 100%
11-
Attendance Requirements
You are expected to attend all lectures, seminars, tutorials, and lab sessions or any other classroom activity. Where you fail to attend classes, you cannot expect the lecturer to brief you on what you have missed. You are responsible for your attendance, not the academic staff. Attendance at tutorials and lab sessions will be strictly monitored, and failure to attend will be taken into account.
12-
Submission and Collection of Assignment
All assignments should be handed in at the beginning of the class sessions when they are due. All assignments may be handed back during scheduled classes.
13-
General Information
Students are required to be familiar with the university code Conduct, and to abide by its terms and conditions.
13.1 Copying of Copyright Material by Student
A condition of acceptance as a student is the obligation to abide by the University’s policy on the copying of copyright material. This obligation covers photocopying of any material using the University’s photocopying machines, and the recording off air, and making subsequent copies, of radio or television broadcasts, and photocopying textbooks. Students who flagrantly disregard University policy and copyright requirements will be liable to disciplinary action under the Code of Conduct.
13.2 Academic Misconduct
13.3 Guidelines to Avoid Plagiarism
Whenever you copy more than a few words from any source, you must acknowledge that source by putting the quote in quotation marks and providing the name of the author. Full details must be provided in your bibliography. If you copy a diagram, statistical table, map, etc., you must acknowledge the source. The recommended way is to show this under the diagram. If you quote any statistics in your text, the source should be acknowledged. Again full details must be provided in your bibliography. Whenever you use the ideas of any other author you should acknowledge those, using the APA (American Psychological Association) style of referencing.
Students are encouraged to co-operate, but collusion is a form of cheating. Students may use any sources (acknowledged of course) other than the assignments of fellow students. Unless your Subject Leader informs you otherwise, the following guideline should be used: Students may work together in obtaining references, discussing the content of the references and discussing the assignment, but when they write, they must write alone.
13.4 Referencing For Written Work
Referencing is necessary to acknowledge others' ideas, avoid plagiarism, and allow readers to access those others’ ideas. Referencing should:
1. Acknowledge others' ideas 2. Allow readers to find the source 3. be consistent in format and
4. Acknowledge the source of the referencing format
To attain these qualities, the school recommends use of either the Harvard or American Psychological Association style of referencing, both of which use the author/date.
13.5 Referencing Standards
APA style referencing
Approval
Designed by,
Ms. Iram Noreen, Ms. Beenish Abid
Assistant Professor, Lecturer
Approved by,
Prof. Dr. Aftab Ahmad Malik