software enginnering

105
NATIONAL HARMONIZED 4 YEar MOdULar sOFtWarE ENGiNEEriNG cUrricULUM March 2013 addis ababa, EthiOpia

Upload: bekre-se

Post on 16-Aug-2015

234 views

Category:

Documents


8 download

DESCRIPTION

Software Engineering

TRANSCRIPT

NATIONAL HARMONIZED 4 YEar MOdULar sOFtWarE ENGiNEEriNG cUrricULUM March 2013 addis ababa, EthiOpia 1 Contents 1.Background ............................................................................................................................... 2 2.Objective of the Program........................................................................................................... 3 3.Program learning outcomes ..................................................... Error! Bookmark not defined. 4.Graduate Profile ........................................................................................................................ 5 5.Academic Requirements ............................................................................................................ 5 5.1Admission Requirements ..................................................................................... 5 5.2Duration of Study ................................................................................................. 5 5.3Graduation Requirements ..................................................................................... 5 5.4Medium of Instruction .......................................................................................... 6 6.Course Coding ........................................................................................................................... 6 7.Assessment and Evaluation ....................................................................................................... 6 7.1 Mode of Assessment .......................................................................................................... 7 7.2 Grading System ................................................................................................................. 7 8.Degree Nomenclature ................................................................................................................ 7 9.Teaching-Learning Methods and Materials ............................................................................... 8 10.Quality Assurance ..................................................................................................................... 8 11.List of Modules ......................................................................................................................... 9 12.Course/Module Breakdown .................................................................................................. 21 13.Module hand book ................................................................................................................... 24 14.Course guide book ................................................................................................................... 24 2 1.Background Nowadays,softwareplaysacentralroleinalmostallaspectsofdailylife:ingovernment, banking and finance, education, transportation, entertainment, medicine, agriculture, and law. The number,size,andapplicationdomainsofcomputerprogramshavegrowndramatically;asa result, hundreds of billions are being spent on software development, and the livelihood and lives ofmostpeople depend on the effectivenessof thisdevelopment.Softwareproducts have helped ustobemoreefficientandproductive.Theymakeusmoreeffectiveproblemsolvers,andthey provideuswithanenvironmentforworkandplaythatisoftensafer,moreflexible,andless confining.Softwareengineeringisadiscipline,whichinvolvesthespecification,design, construction and verification of large software systems. AlthoughthefieldofSoftwareEngineeringwasestablishedmorethan30yearsago,Bachelor degreeprogramsinSoftwareEngineeringinEthiopiacameintoexistence inthelastfewyears. According to the GTP (Growth and Transformation Plan) goals and strategies set by the ministry ofCommunicationandInformationTechnology,theministryemphasizesthefactthatitwill work extensively towards creating an enabling environment for ICT professionals to be engaged in innovation, creativity, and research activities. So that the ministry can effectively support GTP reformtoensuresustainabledevelopment,povertyeradication,humanresourcedevelopment, capacity development and good governance through well developed information communication technologyinvolvement.Hence,thedepartmentofcomputinghasopenedanewprogramin Software Engineering aiming to produce skilled graduates in the field of Software Engineering to fill the demand of manpower in the field at national level. TheSoftwareEngineeringprogramwasstartedduringthe2012-2013academicyear,witha targetofadmittingstudentsintheregularprogramfromtheyear2012onwards,underthe department of Computing at School of Engineering. This degree program is a four year program designedforstudentswhowishtopursuecareersasprofessionalsoftwareengineersinindustry andcommerce.Graduatesofthisprogrammaypursuecareeropportunitiesinavarietyofentry-level positions,includingsoftware developer, software programmer,application developer, Web applicationdeveloper,softwareengineer,softwareapplicationsanalyst,SoftwareProject Manager, Software Tester and Web applications analyst. 3 2.Rationale for the program Program learning outcome specifies the expectation of the program at the end of educational process in the department of the Software Engineering. This clearly state what our students able to perform at the end of successful completion of the course work. This mainly focuses on the achievable output unlike the intention described as part of the program aim. Knowledgeandunderstandingoftheessentialfacts,concepts,principlesandtheoriesrelatedto Software Engineering. Ability to show the mastery of the software engineering knowledge and skills, and professional issues necessary to bring practice as software engineer Ability to work as an individual and as a part of team to develop and deliver quality software products. Ability to reconcile conflicting project activities, finding acceptable compromises within limitations of cost, time, knowledge, existing systems and organizationsAbility to design appropriate solutions in one or more application domains using software engineering approaches that integrate ethical, social, legal andeconomic concerns. Ability to learn new models, techniques and technologies as they emerge and appreciate the necessity of such continuing professional development. Studyofadvancedcoursesfrombasicandpreliminarycoursesthatwillmakethestudentsto understand all dimensions of the field (Software Engineering) thoroughly. AcquiringpracticalskillsandknowledgeinalldimensionsofSoftwareEngineeringfieldby being involved in several group/individual projects. 3.Objective of the Program To provide education for the students with at most quality and thereby to cultivate confidence in the students to serve the country better Assisting Governments policy of increasing trained manpower, thereby reducing the shortage of skilled manpower that are required for different organizations, to develop the nation Assisting the industrial community and institutions around in the region to achieve excellence 4 4.Resources In order to run software engineering department, we need excellent number of staff such as M.Sc and above holder. We need also facility such as libraries, laboratory, workshops and good internet facility for both staffs and students. 5.Professional profile. Assist the ICT related tasks in an Organization Make rational and justified decisions regarding the selection of methods, tools and programming techniques for the development of a computer application.Design software architecture for software development. Develop quality software in various domain Handle system programming tasks. Use CASE tools for software productivity. Develop web sites for network based applications. Design and develop database applications.Maintain and re-engineer the industry software projects.Operate and design hardware systems.Apply the acquired skill professionally to problem solving in a real world environment.Manage the process of software quality management and Assurance. 5 6.Graduate Profile The graduates of the program will be able to: To make rational and justified decisions regarding the selection of methods, tools and techniques for the development of an application. Design, develop and maintain good quality software by applying software engineering principles Selecting the appropriate software model to develop software based on the type of project. Ability to design the test cases for the application and test the application either by performing manual testing or automation testing using the appropriate testing tools Ability to design and develop advanced web sites using client side scripting and server side scripting languages Ability to design, develop and maintain database systems. Ability to assist in the software industry to produce good quality software by applying the software quality techniques. 7.Academic Requirements 5.1Admission Requirements oTherequirementsforadmissiontotheprogramareaspertheMinistryofEducation& Universities admission requirement. 5.2Duration of Study Under normal circumstances, four years of study are required to complete the program. 5.3 Mode of delivery -Mode of delivery should be parallel to make fruitful student learning situation. 5.4Graduation Requirements The major graduation requirements of the program include:Fulfilling the graduation requirements set by Xx Science and Technology University.Successful completion of a total of 246 credit points as per this curriculum; 6 5.5Medium of Instruction The medium of instruction for the program is ENGLISH 8.Course Coding Thecoursecodewillhavefour-digitnumberlikeSEabcd.Thefirstdigit,a,indicatestheyearofthe course offering (1 for 1st year, '2' for 2nd year, 3 for 3rd year and 4 for 4th year courses);the middle numbers,bc,indicatethemodulenumberintheprogram;thelastnumber,d,indicatesorderofthe course within the module. 9.Assessment and Evaluation The different abilities that graduates of this program must acquire are assessed as followed. CognitiveAbilities:Cognitiveabilitiesareassessedbyacombinationoftraditionalwritten examinationsandcontinuousassessment,includingmarkedessays,classtestsandcomputer programming problems. PracticalAbilities:PracticalAbilitiesareassessedmostlybycontinuousassessment.Someof practical abilities are assessed as part of group project module. Transferableskills:someskills, likethe use ofsoftware tools andability tocommunicateorally and in written form are directly assessed, in assignments or projects, other skills are not directly assessed but their effective use will enhance the students overall performance. Evaluation will be done based on the midterm exam, assignments, laboratory sessions demonstrations, Project work, and final exam and etc 7 7.1 Mode of Assessment Mode of assessment is tobe treated as followed For any course having lecture, laboratory/practice and tutorial, continuous assessment shall be used for each of them.i.A student shall not score less than 50% in each lecture, laboratory/practice and tutorial assessments. If a student scores less than 50% in the assessments indicated in Art. (ii above), the instructor shall give additional assignment. However, if a student fails to score the pass mark (50%) the instructor shall convert the grade into F. ii.For courses having lecture, laboratory and practicum, each will be evaluated out of 100%. The relative weight for each of these methods shall be proportional to their credit point. Such course shall be assessed by at least five assessments.iii.For courses having laboratory and practical activities, each will be evaluated out of 100%. The relative weight for each of these methods shall be proportional to their credit point. Such course shall be assessed by at least five assessments.iv.For courses having lecture, laboratory, practical and tutorial each will be evaluated out of 100%. The relative weight for each of these methods shall be proportional to their credit point. Such course shall be assessed by at least nine assessments.v.For a course to be delivered by lecture method only; 50% shall be assessed by continuous assessment constituting four assessments; while 40% shall be allotted for final exam. 7.2 Grading System Gradingis done as perthe UniversityGrading System. However;duringGradingbesurethat the followingpoints are considered. i.Foranycoursehavinglecture,laboratory/practiceandtutorial,rawmarkevaluationshouldbetreated independently from 100 %. ii.Thefinalnumbergradeforacourseisobtainedbasedontheweightedaverageoflecture, laboratory/practice and tutorial. 10.Degree Nomenclature The degree awarded to a student who has completed all the required courses of the program reads, Bachelor of Science Degree in Software Engineering yYNSClR !G bFT&Rx!NJnNG 8 11.Teaching-Learning Methods and Materials The basic teaching method is lecture supported by tutorial, design projects, practical laboratory exercises and,insomecases,bysimulation.E-learningandaudio-visualaidsarealsousedtosupportlectures. Studentsareassignedtoworkonprojectstoenablethemenhanceinnovativeandindependentworking ability.Theindustryinternshipisalsoanintegralpartoftheteaching/learningprocess.Studentsare provided with handouts and teaching materials. 12.Quality Assurance Quality assurance can be used as an instrument to improve the system continuously, install accountability andenablecompatibilitywith other highereducation systems.Thequality of the programisassessed in terms of the instruction performance and impact of program on the quality of graduates looking for a job or further studies. The following factors help to ensure the quality of the education: Inordertomaintainthelevelofcourses,coursedescriptionarepreparedindetailcontaining course objectives, learning outcome, course outline, textbooks, references and laboratory tasks. With regard to instruction performance, in line with the University policy, student evaluations are takenintoaccount.Thefeedbacksfromthestudentsareusedtoimprovethequalityof instruction. ExaminationsareassessedbyDepartmentGraduationCommitteetoverifythelevelofthe courses instruction. Industryfeedbackwillbeanintegralpartoftheprocessofqualityassurance.Thequalityof graduates is measuredwiththe feedbackobtained fromtheemployers and stakeholders who are the immediate beneficiaries of the program and also the graduates who are able to rate their own confidence in meeting the challenges they encounter after graduation. 9 13.List of Modules Module 01: Software Engineering Basics Course NoTitleStatusECTSCr.LecLabTutH/S SE 1012IntroductiontoSoftwareEngineering and Computing Compulsory740005 EnLa202Basic Writing SkillsCompulsory53306 EnLa201Communicative English Compulsory53306 CvEt1201Civics and EthicsCompulsory532004 Math 161CalculusCompulsory744024 EEng 1202Digital Logic DesignCompulsory532305 Total3423 Module 02: Basic programming Course NoTitleStatusECTSC r. LecLabTutH/S Math 192Discrete Mathematics ICompulsory533027 SE 1021ProgrammingFundamentals ICompulsory532215 SE 1022ProgrammingFundamentals IICompulsory532215 SE 1023ComputerOrganizationand Architecture Compulsory743307 Total2213 Module 03: Advanced Programming Course NoTitleStatusECTSCrLecLabTutH/S SE 2031Object Oriented ProgrammingCompulsory743305 Math 292Discrete Mathematics IICompulsory533027 SE 2032Data structures and AlgorithmsCompulsory532215 SE 2033Advanced programming in javaCompulsory7`43307 SE 2034Mobile ProgrammingCompulsory533305 Total2917 10 Module 04: System Software Development Course NoTitleStatusECTSCrLecLabTutH/S SENG2041Formal Language and Automata Theory Compulsory74405 SENG3042Principles of Compiler DesignCompulsory743305 SENG2043Operating SystemsCompulsory743305 SENG2044System Programming Compulsory533305 Total2615 Module 05:Computer Networking Course NoTitleStatusECTSCrLecLabTutH/S SE 3051DataCommunicationandComputer Networks Compulsory743305 SE 4052Information SecurityCompulsory532305 Total127 Module 06: Database SystemsCourse NoTitleStatusECTSCrLecLabTutH/S SE 2061Database Management SystemsCompulsory743305 SE 3062Distributed SystemsCompulsory532307 SE 3064Database AdministrationCompulsory532307 Total1713 Module 07: Web Technology Course NoTitleStatusECTSCrLecLabTutH/S SE 3071Web Design and ProgrammingCompulsory742305 SE 2072WEBService532305 Total127 Module 08: Software Requirement Modeling and Analysis Course NoTitleStatusECTSCr.LecLabTutH/S SE 2081ObjectOrientedSystemanalysisand Compulsory532305 11 modeling SE 3082Software RequirementsEngineeringCompulsory533006 Total106 Module 09: Software Design Course NoTitleStatusECTSCr.LecLabTutH/S SE 3091Software Design and ArchitectureCompulsory533007 SE 3092SoftwareEngineeringapproachesto Human Computer Interaction Compulsory532307 SE 3095Software Component DesignCompulsory532305 SE 3096 Softwareengineeringtoolsand practices Compulsory532305 Total2012 Module 10 System Modeling and simulation Course NoTitleStatusECTSCrLecLab TutH/S SE 3101GraphicsCompulsory532307 SE 3102Multimedia SystemCompulsory532307 Stat 173Probability and StatisticsCompulsory533025 SE 3103Simulation and ModelingCompulsory532305 Total2012 Module 11: Software Management SE 4112Software Project ManagementStatus533007 GE 302EntrepreneurshipCompulsory533003 SE 4113Software Quality Assurance and TestingCompulsory533007 SE 4111Process managementCompulsory532306 Total2012 Module 12: Research and Project Works Course NoTitleStatusECT Cr.LecLa TutH/S 12 Sb SE 4122Seminar in Software EngineeringCompulsory210035 SE 4123SoftwareEngineeringCapstone project I Compulsory740069 SE 4124SoftwareEngineeringCapstone project II Compulsory740609 SE 4121ResearchmethodologyinSoftware Engineering Compulsory322005 Total1911 14.Module profile Module Name Software Engineering Basics Code 01 Category Compulsory Weight (ECTS) 39 Module ObjectiveEnables students to understand basic computer skills. Different Applications in software development. To introduce common Skills required for software engineering. Module CompetenceComputer Application Development Module DescriptionCourse NoTitle SE 1012IntroductiontoSoftwareEngineeringand Computing EnLa202Basic Writing Skills EnLa201Communicative EnglishCvEt1201Civics and Ethics Math 161Calculus EEng 1202Digital Logic Design Econ 101EngineeringEconomics/Principalof Accounting Mode of deliveryBlock Teaching Methods Lecture based laboratory supported offering, student centered approach Students should work projects in solving real world problems group discussion and presentation on assignments 13 Assessment MethodsAssignments/mid exam/final exam/projects/laboratory exercises Module Name Basic programming Code 02 Category Compulsory Weight (ECTS) 22 Module ObjectiveAble to assist in an organization for tasks like solving problems and assist in computer based applications through on line and off line. Data entry, organizing data and storage, systematic way of analysis and programming in a commercial Application for standalone domain. Module CompetenceJunior Programmer Module DescriptionCourse NoTitle Math 192Discrete Mathematics I SE 1021ProgrammingFundamentals I SE 1022ProgrammingFundamentals II SE 1023Computer Organization and Architecture Mode of deliveryBlock Teaching Methods Lecture based laboratory supported offering, student centered approach Students should work projects in solving real world problems group discussion and presentation on assignments Assessment MethodsAssignments/mid exam/final exam/projects/laboratory exercises Module Name Advanced Programming Code 03 Category Compulsory Weight (ECTS) 29 Module ObjectiveTo design and implement different software and desktop applications,Develop client server programsConnecting application programs to a database Creating a simple server page Module CompetenceSenior Programmer Module DescriptionCourse NoTitle SE 2031Object Oriented Programming Math 292Discrete Mathematics II SE 2032Data structures and Algorithms 14 SE 2033Advanced programming in java SE 2034Mobile Programming Mode of deliveryBlock Teaching Methods Lecture based laboratory supported offering, student centered approach Students should work projects in solving real world problems group discussion and presentation on assignments Assessment MethodsAssignments/mid exam/final exam/projects/laboratory exercises Module Name System Software Development Code 04 Category Compulsory Weight (ECTS) 26 Module ObjectiveAbletooperateondifferentoperatingsystem. Developsoftwareforgraphicaluserinterface programmingenvironmentanddesignanddevelop system software application. Module CompetenceSystem Software Development Module DescriptionCourse NoTitle SENG2041Formal Language and Automata Theory SENG3042Principles of Compiler Design SENG2043Operating Systems SENG2044System ProgrammingMode of deliveryBlock Teaching Methods Lecture based laboratory supported offering, student centered approach Students should work projects in solving real world problems group discussion and presentation on assignments Assessment MethodsAssignments/mid exam/final exam/projects/laboratory exercises Module Name Computer Networking Code 05 Category Compulsory Weight (ECTS) 12 Module ObjectiveTodesignandconfigurenetworkinstallationsfor 15 different organizations like switch, routers, and hubs. To maintain security of networking environment. Module CompetenceNetwork Administrator Module DescriptionCourse NoTitle SE 3051DataCommunicationandComputer Networks SE 4052Information Security Mode of deliveryBlock Teaching Methods Lecture based laboratory supported offering, student centered approach Students should work projects in solving real world problems group discussion and presentation on assignments Assessment MethodsAssignments/mid exam/final exam/projects/laboratory exercises Module Name Database SystemsCode 06 Category Compulsory Weight (ECTS) 22 Module ObjectiveTo enable students design and administer database for an organization. To expand students knowledge on database that helps them in developing applications that incorporate database with some Programming tool. Introduce concepts and applications of Data mining and warehousing.Module CompetenceDatabase Manager Module DescriptionCourse NoTitle SE 2061Database Management Systems SE 3062Distributed Systems SE 3064Database Administration Mode of deliveryBlock Teaching Methods Lecture based laboratory supported offering, student centered approach Students should work projects in solving real world problems group discussion and presentation on assignments Assessment MethodsAssignments/mid exam/final exam/projects/laboratory exercises 16 Module Name Web Technology Code 07 Category Compulsory Weight (ECTS) 12 Module ObjectiveAbletodesignanddevelopnetworkbasedwebsite application development for various domains.DesignanddevelopE-commerceapplicationby applying appropriate security services. Module CompetenceWebsite Developer Module DescriptionCourse NoTitle SE 3071Web Design and Programming SE 2072WEBService Mode of deliveryBlock Teaching Methods Lecture based laboratory supported offering, student centered approach Students should work projects in solving real world problems group discussion and presentation on assignments Assessment MethodsAssignments/mid exam/final exam/projects/laboratory exercises Module Name Software Requirement Modeling and Analysis Code 08 Category Compulsory Weight (ECTS) 10 Module ObjectiveToanalyzesoftwarebyfollowingobjectoriented software development approach, like blueprint to our system. Module CompetenceSystem Analyst Module DescriptionCourse NoTitle SE 2081ObjectOrientedSystemanalysisandmodeling SE 3082Software RequirementsEngineering Mode of deliveryBlock Teaching Methods Lecture based laboratory supported offering, student centered approach Students should work projects in solving real world problems group discussion and presentation on assignments 17 Assessment MethodsAssignments/mid exam/final exam/projects/laboratory exercises Module Name Software Design Code 09 Category Compulsory Weight (ECTS) 20 Module ObjectiveTodesignabigsoftwarebyusingtheconceptof object oriented and system analysis design Module CompetenceSystem Designers Module DescriptionCourse NoTitle SE 3091Software Design and Architecture SE 3092SoftwareEngineeringapproachesto Human Computer Interaction SE 3095Software Component Design SE 3096 Software engineering tools and practices Mode of deliveryBlock Teaching Methods Lecture based laboratory supported offering, student centered approach Students should work projects in solving real world problems group discussion and presentation on assignments Assessment MethodsAssignments/mid exam/final exam/projects/laboratory exercises Module Name System Modeling and simulation Code 10 Category Compulsory Weight (ECTS) 20 Module ObjectiveAbletoapplyhardwareconceptstodesignnew embeddedsystemdevelopmentandprogramming 18 and computer graphics programming. Module CompetenceGraphics Developer Module DescriptionCourse NoTitle SE 3101Graphics SE 3102Multimedia System Stat 173Probability and Statistics SE 3103Simulation and Modeling Mode of deliveryBlock Teaching Methods Lecture based laboratory supported offering, student centered approach Students should work projects in solving real world problems group discussion and presentation on assignments Assessment MethodsAssignments/mid exam/final exam/projects/laboratory exercises Module Name Software Management Code 11 Category Compulsory Weight (ECTS) 20 Module ObjectiveAbletoapplythesoftwareprocessandproject managementtoindustrylevelqualitysoftware 19 development application and to develop a real world project in a professional way. Module CompetenceSoftware Project Manager Module DescriptionCourse NoTitle SE 4112Software Project Management GE 302Entrepreneurship SE 4113Software Quality Assurance and Testing SE 4111Process management Mode of deliveryBlock Teaching Methods Lecture based laboratory supported offering, student centered approach Students should work projects in solving real world problems group discussion and presentation on assignments Assessment MethodsAssignments/mid exam/final exam/projects/laboratory exercises Module Name Research and Project Works Code 12 Category Compulsory Weight (ECTS) 19 20 Module ObjectiveAble to develop quality software, Converting a given design into implementation, testing and deploying in Final Year project I. Module CompetenceSoftware Engineers Module DescriptionCourse NoTitle SE 4122Seminar in Software Engineering SE 4123Software Engineering Capstone project I SE 4124Software Engineering Capstone project II SE 4121ResearchmethodologyinSoftware Engineering Mode of deliveryBlock Teaching Methods Lecture based laboratory supported offering, student centered approach Students should work projects in solving real world problems group discussion and presentation on assignments Assessment MethodsAssignments/mid exam/final exam/projects/laboratory exercises 21 15.Course/Module Breakdown Year I Semester I Module No Course CodeCourse Title ECTS Cr. No of weeks Delivery 01EnLa 201Communicative English5316Parallel Math 101Calculus 7416Parallel SE 1011IntroductiontoSoftwareEngineeringand Computing 7416Parallel EEng 1202Digital Logic Design5316parallel 02SWEG 1021Fundamentals of Programming I5316Parallel Total 2917 Year I Semester II Module No Course Code Course TitleCPCr.No of Weeks Delivery 01CvEt 201Civics and Ethics5316Parallel EnLa.202Basic writing skills5316Parallel 02SE 1022Fundamentals of Programming II5316Parallel Math 192Discrete Mathematics I5316Parallel SE 1023ComputerOrganizationand Architecture 5316Parallel 01Econ 101Engineering Economics/ Accounting5316Parallel Total 3018 16Parallel Year II Semester IModule No Course NoTitleCPCr.No of Weeks Delivery 03SE 2031Object Oriented Programming7416Parallel SE 2032Data structures and Algorithms5316Parallel Math 292Discrete Mathematics II5316Parallel 04SENG 2043Operating Systems7416Parallel SENG 2041Formal Language and Automata Theory 74Parallel Total 3118 22 Year II Semester IIModule No Course No TitleCPCr.No of Weeks Delivery 03SE 2033Advanced programming in java7416Parallel SE 2034Mobile Programming5316Parallel 04SENG3042 Principles of Compiler Design7416Parallel 06SE 2061Database Management Systems7416Parallel Total 2615 Year III Semester I Module No Course CodeCourse TitleCpCr.No of Weeks Delivery 08SE 3081ObjectOrientedSoftware Requirement Analysis and modeling 5316Parallel 06SE 3062Distributed Systems5316Parallel 05SE 3051DataCommunicationandComputer Networks 7416Parallel 07SE 3071Web Design and Programming7416Parallel SE 3101Graphics/ Database administration53 Total 2917 16 Year IIISemester II Module NoCourse CodeCourse TitleCPCr.No of Weeks Delivery 07SE 4052Information Security -532Parallel SE 3074Human Computer Interaction -532Parallel 08SE 3082Software RequirementsEngineering -53Parallel Stat 173Probability and Statistics5316Parallel SE 4095Process Management53Parallel SE 3091Software Design and Architecture -5316Parallel Total 3018 Year IV Semester I 23 Module No Course Code Course TitleCPCr.No of Weeks Delivery 09SE 4091SoftwareEngineeringToolsand Practices 532Parallel 12 SE 4123Software Engineering Capstone project I 7416Parallel SE 4121Research Methodology in SEu32Parallel SE 4102Seminar in Software Engineering3116Parallel SE 3095Software Component Design53Parallel SE 3084Simulation and Modeling5316Parallel Total 2816 Year IV Semester IIModule No Course Code Course TitleCPCr.No of Weeks Delivery 09 SE 4094Software Project Management5316Parallel SE 4113Software Quality Assurance and Testing53Parallel GE 302Entrepreneurship3316Parallel SE 3083Multimedia System53Parallel 12SE 4123Software Engineering Capstone Project II7416Parallel SE 4122Seminar in Software Engineering21Parallel Total 2717 24 16.Module hand book Program of Study Xx Science & Technology University School of Engineering BSc. in Software Engineering Module number Module name Number of ECTS credits for the module Module description Objectives/Competencestobedevelopedof the Module Courses in the module Course numberCourse NameCrHrECTS Total 17.Course guide book 25 Course Description: Principles of software engineering: Requirements, design and testing. Review of principles of object orientation. Object oriented analysis using UML. Frameworks and APIs. Introduction to the client-server architecture. Analysis, design and programming of simple servers and clients. Introduction to user interface technology Course Objectives: Upon completion of this course, students will have the ability to: Develop clear, concise, and sufficiently formal requirements for extensions to an existing system, based on the true needs of users and other stakeholders Apply design principles and patterns while designing and implementing simple distributed systems-based on reusable technology Create UML class diagrams which model aspects of the domain and the software architecture Create UML sequence diagrams and state machines that correctly model system behavior Implement a simple graphical user interfaces for a system Apply simple measurement techniques to software Demonstrate an appreciation for the breadth of software engineering Course Schedule, topics, activities, and readingsWeekTopicActivitiesReading 1Software engineering and its place as an engineering discipline Software development process models 2Requirement elicitation, analysis and specification Program of StudyXx Science & Technology University School of Engineering BSc. in Software Engineering Courses codeSE 1012 Courses TitleIntroduction to Software Engineering Degree ProgramB.Sc. in Software Engineering Module nameSoftware Engineering Basics Module number01 Course chairContact address: Instructor/TutorContact address and Consultation Hours: ECTS credit (CP)5 Contact hours per week Lectures Tutorials & seminars Laboratory & workshop Home Study Total 300508 Lecture days, hours,& room Tutorial /lab days & hour Target group Year /semesterI / II Pre-requisitesIntroduction to Computing Status of the courseCompulsory 26 Design concepts: Abstraction, information hiding, cohesion, coupling 3Design using formal methods and UML Implementation coding standards, stepwise refinement 4Testing methods, metrics, verification and validation 5Reusable technologies as a basis for software engineering: Frameworks and APIs. Software architecture: Distributed architectures, pipe-and-filter, model-view-controller, etc. 6Maintenance and Evolution Introduction to project management: roles, activities and deliverables in each life cycle phases 7Sample labs and assignments: Evaluating the performance of various simple software designs Testing a system to verify conformance to test cases Numerous exercises building models in UML, particularly class diagrams and state machines Teaching and learning methods Lecture, assignments,projectsand exercises Assessment & Evaluation Methods Assignment 15%,Exercise 10%, Mid Exam 30%, Final Exam 45% Summary of Course assignments, tests and exam LaboratoryTest #1 Assignment #1 Seminar Lab report Total LectureTest#2 Mid exam Final exam Total Grading: as per universitys regulationCourse policy: Texts and references: Program of StudyXx Science & Technology University School of Engineering BSc. in Software Engineering Courses codeSE 1021 Courses TitleFundamentals of Programming I Degree ProgramBSc in Software Engineering Module nameProgramming Module number01 Course chairContact address: 27 Course Description: This course introduces the fundamental concepts of procedural programming. Topics include data types, control structures, functions, arrays, files, and the mechanics of running, testing, and debugging. Course Objectives: After completing this course students should be able to: Analyze and explain the behavior of simple programs involving the fundamental programming constructsChoose appropriate conditional and iteration constructs for a given programming task. Design, implement, test, and debug a program that uses each of the following fundamental programming constructs: basic computation, simple I/O, standard conditional and iterative structures, and the definition of functions. Course Schedule, topics, activities, and readingsWeekTopicActivitiesReading 1 - 2Algorithms and problem-solving: Problem-solving strategies; the role of algorithms in the problem-solving process; implementation strategies for algorithms; debugging strategies; the concept and properties of algorithms 3-4Basic concepts and Definitions: What is a Program?, "Hello, world", The Programming Process, Program Files and Program Execution, Programming Languages, Compiler Errors vs. Runtime Errors, Development Environments, Reading Input, Formatting Output, Commenting Your Source Code, Good Programming Style 5 - 6Data Types, Constants, and variables: Computer Memory, Variables, Literal Data, key words, operators, Expressions 7 - 8Decision Making: Sequential Execution, What is Decision Making?, Simple Decisions: if, Two-Way Decisions: else, Code Blocks, Nesting Control Statements, Multi-Way Decisions: switch 9 - 11Looping: Kinds of Loops, Iterative Loops, Code Blocks and Loops, Nested Loops, Conditional Loops, Infinite Loops 12-14Function: Definition, Reusable Code in a Subroutine, the Starting Point, Variable Visibility, Parameters, Returning a Value, recursive functions, inline functions, default parameters, Libraries Instructor/TutorContact address and Consultation Hours: ECTS credit (CP)5 (3) Contact hours per week Lectures Tutorials & seminars Laboratory & workshop Home Study Total 212510 Lecture days, hours,& room Tutorial /lab days & hour Target group Year /semester1/1 Pre-requisitesNone Status of the courseCompulsory 28 Teaching and learning methods: Lecture, laboratory work, assignments, projects and exercises Assessment & Evaluation Methods: The students are evaluated by test, exam, assignment, project Summary of Course assignments, tests and exam LaboratoryTest #1 Assignment #1 Seminar Lab report Total LectureTest#2 Mid exam Final exam Total Grading: as per - the harmonized academic policy Course policy: Texts and references: Exploring Programming And Computer Science With C ++ By - Owen L. Astrachan (McGraw Hill) C++ How To Program By Deitel&Deitel - (Addison Wesely) Teach Yourself C++ By - Herbert Schildt - (Tmh) Thinking In C++ By - Bruce Eckel - (Pearson Education, Second Edition) Standard C++ With Object-Oriented Programming By - Paul S Wang - (Vikas Pub.) Fundamental Of Computing With C ++ By - J.R. Hubbard, Schaums Series Complete Reference C ++ -By- Schildt (Tmh) C++ Programming, By Al Stevens Wiley, Dream Tech C ++ Programming - By - Ds. Mallik (Thomson Learning) C ++ Programming -By-Herbert Schildt(Dream Tech Press) Starting Out With C ++ By - Tony Gaddis (Dream Tech Press) Program of StudyXx Science & Technology University School of Engineering BSc. in Software Engineering Courses codeSE 1022 Courses TitleFundamentals of Programming II Degree ProgramBSc in Software Engineering Module nameProgramming Module number01 Course chairContact address: Instructor/TutorContact address and Consultation Hours: 29 Course Description: This course starts with overviewing functions and discusses the concept of arrays, Strings, pointers, structures and files in detail. It also discusses about the mechanics of running, testing, and debugging programs and introduces object oriented programming. Course Objectives: After completing this course students should be able to: Apply the techniques of structured (functional) decomposition to break a program into smaller pieces. Implement string, array, structures in simple programs Able to allocate and release memory locations dynamically Apply basic file I/O in programs Understands the differences between structural and object oriented programming paradigms. Course Schedule, topics, activities, and readingsWeekTopicActivitiesReading 1 Over view of functions: 2 - 3Arrays and Strings: Array definition, array declaration, Array Initialization, Accessing Array Elements, Multidimensional Arrays, string definition, string manipulation, getting string from keyboard, arrays as parameters. 4 - 6Pointers: Definition, The address-of operator &, Pointers and arrays, Pointers and functions, Pointers and strings, Memory management: new and delete, pointer manipulation 7 - 8Structures and Classes: definition of structure, defining a structures, records, accessing, defining class, Using Arrays with structures, Linked lists 9 - 10Working with files: File I/O, Opening Files, Opening a File for Writing, Opening a File for Reading, Checking for File Open Errors, Closing a File, Text Files vs. Binary Files 11Debugging: What is Debugging? Commenting Out Code, Simple Debugging with Print Statements, Making Debugging Print Statements Conditional, Programs that Help You Debug Programs 12-14Introduction to Object oriented programming: ECTS credit (CP)5 (3) Contact hours per week Lectures Tutorials & seminars Laboratory & workshop Home Study Total 212510 Lecture days, hours,& room Tutorial /lab days & hour Target group Year /semesterYear: I Semester: II Pre-requisitesFundamentals of Programming I Status of the courseCompulsory 30 Teaching and learning methods: Lecture, laboratory work, assignments, projects and exercises Assessment & Evaluation Methods: The students are evaluated by test, exam, assignment and project Summary of Course assignments, tests and exam LaboratoryTest #1 Assignment #1 Seminar Lab report Total LectureTest#2 Mid exam Final exam Total Grading: as per-the harmonized academic policy Course policy: Texts and references: Exploring Programming And Computer Science With C ++ By - Owen L. Astrachan (McGraw Hill) C++ How To Program By Deitel&Deitel - (Addison Wesely) Teach Yourself C++ By - Herbert Schildt - (Tmh) Thinking In C++ By - Bruce Eckel - (Pearson Education, Second Edition) Standard C++ With Object-Oriented Programming By - Paul S Wang - (Vikas Pub.) Fundamental Of Computing With C ++ By - J.R. Hubbard, Schaums Series Complete Reference C ++ -By- Schildt (Tmh) C++ Programming, By Al Stevens Wiley, Dream Tech C ++ Programming - By - Ds. Mallik (Thomson Learning) C ++ Programming -By-Herbert Schildt(Dream Tech Press) Starting Out With C ++ By - Tony Gaddis (Dream Tech Press) Program of StudyXx Science & Technology University School of Engineering and IT BSc. in Software Engineering Courses codeSE 2031 Courses TitleObject Oriented Programming Degree ProgramBSc in Software Engineering Module nameProgramming Module number02 Course chairContact address: Instructor/TutorContact address and Consultation Hours: 31 Course Description: The courses discusses about design of classes, Inheritance, Polymorphism, Static and dynamic binding, Abstract classes, Exception handling, java File I/O, Interfaces, inner classes and generics in detail. It also introduces event-driven programming and collections and iterators. Course Objectives: After completing this course students should be able to: Justify the philosophy of object-oriented design and the concepts of encapsulation, abstraction, inheritance, and polymorphism. Design, implement, test, and debug simple programs in an object-oriented programming language. Describe how the class mechanism supports encapsulation and information hiding. Design, implement, and test the implementation of is-a relationships among objects using a class hierarchy and inheritance. Compare and contrast the notions of overloading and overriding methods in an object-oriented language. Explain the relationship between the static structure of the class and the dynamic structure of the instances of the class. Describe how iterators access the elements of a container. Course Schedule, topics, activities, and readingsWeekTopicActivitiesReading 1 Introduction: Fundamental Programming Structures in Java (The main() method, Primitive Data Types, Variables, Constants, Assignments, Initializations, Operators, Strings, Control Flow), OOP paradigms, Arrays, Strings 2 - 3Classes and Objects: Classes & Objects, reference variables vs primitive variables, Instance Variables, Class Variables, Constructors, Instance Methods, Class Methods, Access specifies, Method Overloading, The this keyword, Passing and returning objects, Garbage Collection 4 - 5Inheritance and Polymorphism:-An introduction to inheritance, Composition, polymorphism,Superclasses and subclasses, Protected members, Relations between super- and subclasses, Constructors in superclasses, Method Overriding, The super keyword, hiding, the Object class. ECTS credit (CP)6 (4) Contact hours per week Lectures Tutorials & seminars Laboratory & workshop Home Study Total 303612 Lecture days, hours,& room Tutorial /lab days &hour Target group Year /semesterYear: II Semester:I Pre-requisitesFundamentals of Programming II Status of the courseCompulsory 32 6 - 7Interfaces and Packages:-, abstract classes and methods, interfaces, Purpose of Interfaces, When to use them, Interface Declaration, Implementing an Interface, Interface Inheritance, Final methods and classes, inner classes 8 - 9Generics:- Generic methods, generic classes, wild cards in generic methods. 9 - 10Exception Handling:- Why Exceptions, Standard Exception Handling Options, Exception Class Hierarchy, Checked vs. Unchecked Exceptions, Catching an Exception, the throws clause, Handling vs. Declaring Exceptions, System Exceptions vs. Application Exceptions, Writing Custom Exceptions 11-12Java I/O:- Streams & Files, Input & Output Streams, File Streams, Object Streams, Object Serialization, Readers & Writers, The Java New I/O (NIO) API 13Java Collections:- The Java Collections Framework, Collections Interfaces, Concrete Collections, Iterating through Collections 14Introduction to Graphical User Interface Teaching and learning methods: Lecture, laboratory work, assignments, projects and exercises Assessment & Evaluation Methods: The students are evaluated by test, exam, assignment and project Summary of Course assignments, tests and exam LaboratoryTest #1 Assignment #1 Seminar Lab report Total LectureTest#2 Mid exam Final exam Total Grading: as per-the harmonized academic policy Course policy: Texts and references: Understanding Object-Oriented Programming With Java By Timothy Budd(Pearson) The Complete Reference Java 2 (Fourth Edition) By - Patrick Naughton&HerbetSchildt (Tmh) Programming Java - Decker&Hirsh Field VikasPublisking (2001) (Thomson Learning ) (2/e) Object Oriented Programming Through Java 2 By - Thamus Wu (Mc.Graw Hill) Java 2 - Dietel&Dietel (Pearson Education) 33 Course Description: This course explores advanced Java language features and packages. The course begins with introducing applets. Multithreading, network programming and Database programming using JDBC is covered in depth. Distributed programming in Java is introduced using RMI. Reflection in Java and JAR files are covered. Server-side Web programming is introduced using servlets and JSP. Java security is covered. There is also an introduction to JavaBeans. Course Objectives: After completing this course students should be able to: Write Client Server applications using sockets. Write multi-threaded Java applications.. Perform database queries and updates using JDBC. Develop distributed applications using RMIDevelop component-based Java software usingJavaBeansDevelop server side programs in the form of servlets and JSP Learn Java's security model and how to do security programming in Java Course Schedule, topics, activities, and readingsWeekTopicActivitiesReading 1 Introduction to Applet programming: Introduction; Running applets; Applet life cycle, Applet and JApplet classes, the tag; Program of StudyXx Science & Technology University School of Engineering and IT BSc. in Software Engineering Courses codeSE 2034 Courses TitleAdvanced Programming Degree ProgramBSc in Software Engineering Module nameProgramming Module number02 Course chairContact address: Instructor/TutorContact address and Consultation Hours: ECTS credit (CP)6 (4) Contact hours per week Lectures Tutorials & seminars Laboratory & workshop Home Study Total 303612 Lecture days, hours,& room Tutorial /lab days & hour Target group Year /semesterYear: III Semester: I Pre-requisitesObject Oriented Programming Status of the courseCompulsory 34 2 3Multithreading: Introduction; thread states; priorities and thread scheduling; creating and Executing threads; thread synchronization; Producer Consumer relationships; Multithreading with GUI; dead locks 4 5Networking: Introduction; Manipulating URLs; Reading a file on a web server; Establishing server using stream socket; establishing client using stream socket; client server interaction with stream sockets; connectionless client/server interaction with UDP datagram 6 7Java Database ConnectivityJDBC: Introduction; Manipulating database with JDBC; Row set Interface; Prepared Statements; Stored procedures; Transaction Processing 8 9Servlet: Introduction;Servlet Overview and Architecture; Interface Servlet and the Servlet Life Cycle; Compile Servlets, Describe an HTTP Servlet, Define Session Tracking, Describe InterServlet communication, Use a servlet to access a database 9 10Java Server Pages (JSP): Introduction; Java Server Pages Overview; Implicit Objects; Scripting;Standard Actions; Directives; Custom Tag Libraries, expression language, MVC architecture 11-12Remote Method Invocation (RMI):- Introduction; creating a distributed system using RMI; Defining the Remote Interface; Implementing the remote interface; Compiling and Executing the Server and the Client 13JavaBeans:-The Basic Bean,Bean Properties, Bound Properties, Constrained Properties, Visual Beans, Packaging Beans 14Java Security:- The Java Security Model,Policy Entries,Policy Files,Using the Policy Tool,Security Managers,Default Applet Security Teaching and learning methods: Lecture, laboratory work, assignments, projects and exercises Assessment & Evaluation Methods: The students are evaluated by test, exam, assignment and project Summary of Course assignments, tests and exam LaboratoryTest #1 Assignment #1 Seminar Lab report Total LectureTest#2 35 Mid exam Final exam Total Grading: as per-the harmonized academic policy Course policy: Texts and references: Java how to program, Dietel&Dietel (seventh edition) Course Description: An in-depth look at software design. Continuation of the study of design patterns, frameworks, and architectures. Survey of current middleware architectures. Design of distributed systems using middleware. Component based design. Measurement theory and appropriate use of metrics in design. Designing for qualities such as performance, safety, security, reusability, reliability, etc. Measuring internal qualities and complexity of software. Evaluation and evolution of designs. Basics of software evolution, reengineering, and reverse engineering. Course Objectives: Upon completion of this course, students will have the ability to: Design and implement software using several different middleware technologies Program of StudyXx Science & Technology University School of Engineering BSc. in Software Engineering Courses codeSE 3073 Courses TitleSoftware Design and Architecture Degree ProgramB.Sc. in Software Engineering Module nameSoftware Design Module number07 Course chairContact address: Instructor/TutorContact address and Consultation Hours: ECTS credit (CP)6 Contact hours per week Lectures Tutorials & seminars Laboratory & workshop Home Study Total 400711 Lecture days, hours,& room Tutorial /lab days & hour Target group Year /semesterIII / II Pre-requisitesObject Oriented Software Engineering Status of the courseCompulsory 36 Apply a variety of frameworks, and architectural styles in designing a widevariety of software Use sound quality metrics as objectives for designs, and then measure and assess designs to ensure the objectives have been met Modify designs using sound change control approaches Use reverse engineering techniques to recapture the design of software Course Schedule, topics, activities, and readingsWeekTopicActivitiesReading 1Structural and behavioral design descriptions and specifications General and domain specific design principles 2Object oriented design concepts(abstract types, interfaces, polymorphism, delegation vs sub classing, generics) 3Architecturestyles (pipe and filter, event-based, layered etc) and Architectural view models) 4In-depth study of middleware architectures including COM, CORBA, and .Net 5Extensive case studies of real designs Basics of software metrics; measuring software qualities 6Reengineering and reverse engineering techniques. Sample labs and assignments: Building a significant project using one or more well known middleware architectures. Teaching and learning methods Assessment & Evaluation Methods Summary of Course assignments, tests and exam LaboratoryTest #1 Assignment #1 Seminar Lab report Total LectureTest#2 Mid exam Final exam Total Grading: as per-the harmonized academic policy Course policy: Texts and references: David Budgen, "Software Design", Addison Wesley, 1994. Pressman R.S, "Software Engineering", 4th edition, McGraw Hill Inc, 1996. 37 Ed Downs, Peter Clare and Jan Coe, "Structured System Analysis and Design Methods Application and Context", Prentice Hall, 1998. Mary Shaw David Garlan, "Software Architectural Perspectives on an Emerging Discipline", EEE, PHI, 1996. Bass L, Clements P, and Kazman R, "Software Architecture in Practices", 2nd edition, SEI series in Software Engineering, PEI, Addison Wesley, 2003. Course Description: Quality: how to assure it and verify it, and the need for a culture of quality. Avoidance of errors and other quality problems. Inspections and reviews. Testing, verification and validation techniques. Process assurance vs. Product assurance.Quality process standards. Product and process assurance. Problem analysis and reporting. Statistical approaches to quality control. Course Objectives: Upon completion of this course, students will have the ability to: Conduct effective and efficient inspections Design and implement comprehensive test plans Apply a wide variety of testing techniques in an effective and efficient manner Compute test coverage and yield, according to a variety of criteria Use statistical techniques to evaluate the defect density and the likelihood of faults Assess a software process to evaluate how effective it is at promoting quality Program of StudyXx Science & Technology University School of Engineering BSc. in Software Engineering Courses codeIT4093 Courses TitleSoftware Quality Assurance and Testing Degree ProgramB.Sc. in Software Engineering Module nameSoftware Testing and Quality assurance Module number05 Course chairContact address: Instructor/TutorContact address and Consultation Hours: ECTS credit (CP)5 Contact hours per week Lectures Tutorials & seminars Laboratory & workshop Home Study Total 300710 Lecture days, hours,& room Tutorial /lab days & hour Target group Year /semesterIV / I Pre-requisitesObject Oriented Software Engineering Status of the courseCompulsory 38 Course Schedule, topics, activities, and readingsWeekTopicActivitiesReading 1Introduction to software quality assurance(terms like faults, errors, debugging and quality standards) 2Principles of software validation and Software verification Software Testing (unit testing, regression testing, system testing, integration testing) 3White-box and black-box testing (state transition, equivalent partitioning, static and dynamic testing etc) 4Control flow oriented test construction techniques, McCabe Cyclomatic complexityData flow oriented test construction techniques 5Exploratory Testing Code and Fix programming paradigm (test plan, test case design specification, etc) Introduction to Software Reliability and default density 6Sample labs and assignments: Basic Testing with automated testing tools like JUnit Logic coverage testing Code coverage tool usage Mutation Testingusing a mutation testing tool Mock object testing using mock object testing tool State transition testing Input space partitioning testing Teaching and learning methods Assessment & Evaluation Methods Summary of Course assignments, tests and exam LaboratoryTest #1 Assignment #1 Seminar Lab report Total LectureTest#2 Mid exam Final exam Total Grading: as per-the harmonized academic policy Course policy: Texts and references: Program of StudyXx Science & Technology University School of Engineering 39 Course Description: General principles and techniques for disciplined low-level software design. BNF and basic theory of grammars and parsing. Use of parser generators. Basics of language and protocol design. Formal languages.State-transition and table-based software design. Formal methods for software construction. Techniques for handling concurrency and inter-process communication. Techniques for designing numerical software.Tools for model-driven construction. Introduction to Middleware. Hot-spot analysis and performance tuning. Course Objectives: Upon completion of this course, students will have the ability to: Apply a wide variety of software construction techniques and tools, including state-basedand table-driven approaches to low-level design of software Design simple languages and protocols suitable for a variety of applications Generate code for simple languages and protocols using suitable tools Create simple formal specifications of low-level software modules, check the validity ofthese specifications, and generate code from the specifications using appropriate tools Design simple concurrent software Analyze software to improve its efficiency, reliability, and maintainability Course Schedule, topics, activities, and readingsWeekTopicActivitiesReading 1Basics of formal languages; syntax and semantics; grammars; Backus Naur Form. Parsing; 2Regular expressions and their relationship to state diagrams Lexical Analysis; tokens; more regular expressions and transition networks; principles of scanners 3Using tools to generate scanners; applications of scanners. BSc. in Software Engineering Courses codeSE 3071 Courses TitleSoftware Construction IDegree ProgramB.Sc. in Software Engineering Module nameSoftware Design Module number04 Course chairContact address: Instructor/TutorContact address and Consultation Hours: ECTS credit (CP)5 Contact hours per week Lectures Tutorials & seminars Laboratory & workshop Home Study Total 203510 Lecture days, hours,& room Tutorial /lab days & hour Target group Year /semesterIII / I Pre-requisitesIntroduction to Sooftware Engineering, District Mathematics I and II Status of the courseCompulsory 40 Relation of scanners and compilers 4Parsing concepts; parse trees; context free grammars, LL Parsing Overview of principles of programming languages. Criteria for selecting programming languages and platforms 5Tools for automating software design and construction. Modeling system behavior with extended finite state machines SDL 6Representing concurrency, and analyzing concurrent designs Sample labs and assignments: Use of software engineering tools to create designs Use of parser generators to generate languages Teaching and learning methods Assessment & Evaluation Methods Summary of Course assignments, tests and exam LaboratoryTest #1 Assignment #1 Seminar Lab report Total LectureTest#2 Mid exam Final exam Total Grading: as per-the harmonized academic policy Course policy: Texts and references: Program of StudyXx Science & Technology University School of Engineering BSc. in Software Engineering Courses codeSE 4091 41 Course Description: This course provides an introduction to the software engineering tools and practices - a look at typical approach software engineers use to create applications in practice. Topics include requirements analysis, high-level design, detail-level design, UML modeling, code generation, application building, and revision management. Laboratory assignments provide an opportunity for students to develop an understanding of these tools and how they are used in actual practice. Course Objectives: Upon successful completion of this course, the student will be able to: Transform requirements documented as use cases into UML design models Generate source code from UML design models, and synchronize subsequent changes Create user interfaces using a visual design tool Maintain source code and related design documents in a revision control system Create a deployable software package using an automated build tool Track software defects using a change management system Be able to create an installable software package using an automated build tool Course Schedule, topics, activities, and readingsWeekTopicActivitiesReading 1Introduction to software engineering practicesSource code generation from UML models 2Synchronizing source code with UML modelsUse of a revision control system to archive source code and related documentation 3Graphical UI layout (1 class) Use of a change management system for tracking software defects 4Use of an automated build tool for software package Courses TitleSoftware Engineering Tools and Practices Degree ProgramB.Sc. in Software Engineering Module nameSoftware Management Module number06 Course chairContact address: Instructor/TutorContact address and Consultation Hours: ECTS credit (CP)5 Contact hours per week Lectures Tutorials & seminars Laboratory & workshop Home Study Total 203611 Lecture days, hours,& room Tutorial /lab days & hour Target group Year /semesterIII / II Pre-requisitesObject Oriented Programming, Object Oriented SAD Status of the courseCompulsory 42 creation: meta-languages, scripts, rules, targets, actionsSoftware requirements analysis: reading use case scenarios and use case textual analysis 5High-level design: requirements coverage, communication diagramsDetailed design: class, communication, activity, state, and sequence diagrams 6Laboratory topics Development of various small software projects to facilitate practice and with integrated tool usage Teaching and learning methods Assessment & Evaluation Methods Summary of Course assignments, tests and exam LaboratoryTest #1 Assignment #1 Seminar Lab report Total LectureTest#2 Mid exam Final exam Total Grading: as per-the harmonized academic policy Course policy: Texts and references: Program of StudyXx Science & Technology University School of Engineering BSc. in Software Engineering Courses codeSE 3075 Courses TitleSoftware Component Design Degree ProgramB.Sc. in Software Engineering Module nameSoftware Design Module number04 Course chairContact address: Instructor/TutorContact address and Consultation Hours: ECTS credit (CP)5 Contact hours perTutorials &Laboratory & 43 Course Description: This course deals with the design and implementation of software subsystems. The concept of design patterns is introduced and common patterns are applied to the development of software components. Laboratory projects provide an opportunity for teams of students to implement components and to integrate them into complete systems. Course Objectives: Upon successful completion of this course, the student will: apply object-oriented design patterns in software application-specific contexts determine the appropriate design pattern to apply in a specific context design and implement small software components and systems apply UML class and sequence diagrams in the process of designing and documenting software applications use computer-aided software engineering (CASE) tools in the design and software documentation process conduct independent research on software design patterns document software design patterns in both written and oral reports Course Schedule, topics, activities, and readingsWeekTopicActivitiesReading 1Introduction to course and design patterns 2Threading and thread synchronization 3Inter-thread and inter-process communication using shared memory, pipes, and sockets 4Design patterns Pattern application issues 5Anti-patterns 6Laboratory topics Investigation of multi-threaded data collections Application of specific design patterns Development of application to demonstrate the use of a chosen design pattern Demonstration of example application Teaching and learning methods Assessment & Evaluation Methods weekLecturesseminarsworkshopHome StudyTotal 203510 Lecture days, hours,& room Tutorial /lab days & hour Target group Year /semesterIII / II Pre-requisitesObject Oriented Analysis and Design, Object Oriented Programming, Data Structures and Algorithms Status of the courseCompulsory 44 Summary of Course assignments, tests and exam LaboratoryTest #1 Assignment #1 Seminar Lab report Total LectureTest#2 Mid exam Final exam Total Grading: as per-the harmonized academic policy Course policy: Texts and references: Head First Design Patterns Freeman and Freeman, OReilly, 2004 Course Description: Program of StudyXx Science & Technology University School of Engineering BSc. in Software Engineering Courses codeMath 192 Courses TitleDiscrete Mathematics I Degree ProgramBSc in Software Engineering Module nameSupportive Course Module number10 Course chairContact address: Instructor/TutorContact address and Consultation Hours: ECTS credit (CP)5 (3) Contact hours per week Lectures Tutorials & seminars Laboratory & workshop Home Study Total 31059 Lecture days, hours,& room Tutorial /lab days & hour Target groupFirst year Software Engineering Students Year /semesterYear I, Semester II Pre-requisitesNone Status of the course Compulsory 45 This courses introduces the foundations of discrete mathematics as they apply to computer science, focusing on providing a solid theoretical foundation for further work. Topics include functions, relations, sets, simple proof techniques, Boolean algebra, propositional logic, digital logic, elementary number theory, the fundamentals of counting, Course Objectives: After completing this course students should be able to: Explain with examples the basic terminology of functions, relations, and sets. Perform the operations associated with sets, functions, and relations. Apply formal methods of symbolic propositional and predicate logic. Describe how formal tools of symbolic logic are used to model algorithms and real life situations. Outline the basic structure of and give examples of different proof techniques. Discuss which type of proof is best for a given problem. Compute permutations and combinations of a set, and interpret the meaning in the context of the particular application. Solve a variety of basic recurrence equations. Course Schedule, topics, activities, and readingsWeekTopicActivitiesReading 1 - 2Introduction to logic and proofs: Direct proofs; proof by contradiction; mathematical induction 3 - 4Fundamental structures: Functions (surjections, injections, inverses, composition); relations (reflexivity, symmetry, transitivity, equivalence relations); sets (Venn diagrams, complements, Cartesian products, power sets); pigeonhole principle; cardinality and countability 5 - 6Boolean algebra: Boolean values; standard operations on Boolean values; de Morgan's laws 7 - 8Propositional logic: Logical connectives; truth tables; normal forms (conjunctive and disjunctive); validity 9 - 10Digital logic: Logic gates, flip-flops, counters; circuit minimization 11 - 12 Elementary number theory: Factorability; properties of primes; greatest common divisors and least common multiples; Euclid's algorithm; modular arithmetic; the Chinese Remainder Theorem 13 - 14 Basics of counting: Counting arguments; pigeonhole principle; permutations and combinations; binomial coefficients Teaching and learning methods: Lecture, assignments and exercises Assessment & Evaluation Methods Summary of Course assignments, tests and exam LaboratoryTest #1 Assignment #1 Seminar Lab report Total Lecture 46 Test#2 Mid exam Final exam Total Grading: as per-the harmonized academic policy Course policy: Texts and references: Text-Book: Discrete Mathematics For Computer Scientists, (Chapter 1-5) By J L Mott, Akandel And T P Baker Reference Books : Discrete Mathematical Structure - (Tmh) By Trembley And Manohar Discrete Mathematics With Algorithms - (John Wiley) By M.O.Albertson And J.P.Hutchinson Elements Of Discrete Mathematics-(Tmh, Second Edition) By C.L.Liu Discrete Mathematics - (Phi, Third Edition) By BurnordKolman Discrete Mathematics By KhRossen (Tmh) Discrete Mathematics By S Lipschutz And M. Lipson Schaums Gen (Tmh) Discrete Mathematics For Computer Science By Garrry Haggard, J. Schilpf& S White Sides (Thomson Press) Discrete & Combinatorial Mathematics By Ralph P Grimaldi (Pearson Education) Discrete Mathematical Structures By Ds Mallik& M K Sen (Thomson Press) Program of StudyXx Science & Technology University School of Engineering BSc. in Software Engineering Courses codeMath 292 Courses TitleDiscrete Mathematics II Degree ProgramBSc in Software Engineering Module nameSupportive Course Module number10 Course chairContact address: Instructor/TutorContact address and Consultation Hours: ECTS credit (CP)5 (3) Contact hours per week Lectures Tutorials & seminars Laboratory & workshop Home Study Total 31059 Lecture days, hours,& room 47 Course Description: Continues the discussion of discrete mathematics introduced in Math 192. Topics in thesecond course include predicate logic, recurrence relations, graphs, trees, matrices,computational complexity, elementary computability, and discrete probability. Course Objectives: After completing this course students should be able to: Illustrate by example the basic terminology of graph theory, and some of the properties and special cases of each. Demonstrate different traversal methods for trees and graphs. Model problems in computer science using graphs and trees. Course Schedule, topics, activities, and readingsWeekTopicActivitiesReading 1 - 2Predicate logic: Universal and existential quantification; modus ponens and modus tollens; limitations of predicate logic 3-4Recurrence relations: Basic formulae; elementary solution techniques 5 - 6Graphs and trees: Fundamental definitions; simple algorithms ; traversal strategies; proof techniques; spanning trees; applications 7 - 8Matrices: Basic properties; applications 9 - 10Computational complexity: Order analysis; standard complexity classes 11 - 12Elementary computability: Count ability and unaccountability; diagonalization proof to show uncountability of the reals; definition of the P and NP classes; simple demonstration of the halting problem 13 - 14Discrete probability: Finite probability spaces; conditional probability, independence, Bayes rule; random events; random integer variables; mathematical expectation Teaching and learning methods: Lecture, assignments and exercises Assessment & Evaluation Methods Summary of Course assignments, tests and exam LaboratoryTest #1 Assignment #1 Seminar Lab report Tutorial /lab days & hour Target groupSecond year Software Engineering Students Year /semesterYear II, Semester I Pre-requisitesDiscrete Mathematics IStatus of the course Compulsory 48 Total LectureTest#2 Mid exam Final exam Total Grading: as per-the harmonized academic policy Course policy: Texts and references: Text-Book: Discrete Mathematics For Computer Scientists, (Chapter 1-5) By J L Mott, Akandel And T P Baker Reference Books : Discrete Mathematical Structure - (Tmh) By Trembley And Manohar Discrete Mathematics With Algorithms - (John Wiley) By M.O.Albertson And J.P.Hutchinson Elements Of Discrete Mathematics-(Tmh, Second Edition) By C.L.Liu Discrete Mathematics - (Phi, Third Edition) By BurnordKolman Discrete Mathematics By KhRossen (Tmh) Discrete Mathematics By S Lipschutz And M. Lipson Schaums Gen (Tmh) Discrete Mathematics For Computer Science By Garrry Haggard, J. Schilpf& S White Sides (Thomson Press) Discrete & Combinatorial Mathematics By Ralph P Grimaldi (Pearson Education) Discrete Mathematical Structures By Ds Mallik& M K Sen (Thomson Press) Program of StudyXx Science & Technology University School of Engineering BSc. in Software Engineering Courses codeSE 3074 Courses TitleSoftware Engineering Approaches to Human Computer Interaction Degree ProgramBSc in Software Engineering Module nameSoftware Design Module number04 Course chairContact address: Instructor/TutorContact address and Consultation Hours: ECTS credit (CP)5 (3) Contact hours per week Lectures Tutorials & seminars Laboratory & workshop Home Study Total 203510 Lecture days, hours,& room Tutorial /lab days & hour 49 Course Description: The course presents a comprehensive introduction to the principles and techniques of human computer interaction. It also discusses about designing user interfaces for different types of applications. Course Objectives: Describe the relationship between the cognitive principles and their application to interfaces and products. Explain the conceptual terms for analyzing human interaction with products such as affordance, conceptual model, and feedback. Analyze different user populations with regard to their abilities and characteristics for using both software and hardware products. Explain the importance of the user abilities and characteristics in the usability of products. Course Schedule, topics, activities, and readingsWeekTopicActivitiesReading 1 - 2Foundations of human-computer interaction: Motivation; contexts for HCI; human centered development and evaluation; human performance models; human performance models; accommodating human diversity; principles of good design and good designers; engineering tradeoffs; introduction to usability testing 3 - 4Human-centered software evaluation: Setting goals for evaluation; evaluation without users; evaluation with users 5 - 6Human-centered software development: Approaches, characteristics, and overview of process; functionality and usability; specifying interaction and presentation; prototyping techniques and tools 7 - 8Graphical user-interface design: Choosing interaction styles and interaction techniques; HCI aspects of common widgets; HCI aspects of screen design; handling human failure; beyond simple screen design; multi-modal interaction; 3D interaction and virtual reality 9 - 10Graphical user-interface programming: Dialogue independence and levels of analysis; widget classes; event management and user interaction; geometry management; GUI builders and UI programming environments; cross-platform design 11 - 12HCI aspects of multimedia systems: Categorization and architectures of information; information retrieval and human performance; HCI design of multimedia information systems; speech recognition and natural language processing; information appliances and mobile computing 13 - 14HCI aspects of collaboration and communication: Groupware to support specialized tasks; asynchronous group communication; synchronous group communication; online communities; software characters and intelligent agents Target groupThird year Software Engineering Students Year /semesterYear III, Semester I Pre-requisitesObject Oriented Software Analysis and DesignStatus of the course Compulsory 50 Teaching and learning methods: Lecture, assignments and exercises Assessment & Evaluation Methods Summary of Course assignments, tests and exam LaboratoryTest #1 Assignment #1 Seminar Lab report Total LectureTest#2 Mid exam Final exam Total Grading: as per-the harmonized academic policy Course policy: Texts and references: Program of StudyXx Science & Technology University School of Engineering BSc. in Software Engineering Courses codeSE 2035 Courses TitleWeb Designing and Programming Degree ProgramB Scin Software Engineering Module nameInformation System Courses Module number Course chairContact address: Instructor/TutorContact address and Consultation Hours: ECTS credit (CP)5 Contact hours per week Lectures Tutorials & seminars Laboratory & workshop Home Study Total 203510 Lecture days, hours,& room Tutorial /lab days & hour Target group Year /semesterII / II Pre-requisites Status of the courseCompulsory 51 Course Description: Course Objectives: Course Schedule, topics, activities, and readingsWeekTopicActivitiesReading 1HTML Common tags- List, Tables, images, forms, Frames; Cascading Style sheets; Introduction toJava Scripts, Objects in Java Script, Dynamic HTML with Java Script, CSS 2XML: Document type definition, XML Schemas, Document Object model,Presenting XML, Using XML Processors:DOM and SAX Review of Applets, Class, Event Handling, AWT Programming. Introduction to Swing: JApplet, Handling Swing Controls like Icons Labels Buttons Text Boxes Combo Boxes Tabbed Pains Scroll Pains Trees Tables Differences between AWT Controls & Swing Controls Developing a Home page using Applet & Swing 3Java Beans: Introduction to Java Beans, Advantages of Java Beans, BDK Introspection, Using Bound properties, Bean Info Interface, Constrained properties Persistence, Customizes, Java Beans API. Web servers: Tomcat Server installation & Testing. Introduction to Servelets: Lifecycle of a Serverlet, JSDK The Servelet API, The javax.servelet Package, Reading Servelet parameters, Reading Initializationparameters. 4More on Servlets: The javax.servelet HTTP package, Handling Http Request & Responses, Using Cookies-Session Tracking, Security Issues. Introduction to JSP:The Problem with Servelet. The Anatomy of a JSP Page, JSP Processing.JSP Application Design with MVC architecture. AJAX. 5JSP Application Development: Generating Dynamic Content, Using Scripting Elements Implicit JSP Objects, Conditional Processing Displaying Values Using an Expression to Set an Attribute, Declaring Variables and Methods Error Handling and Debugging Sharing Data Between JSP pages, Requests, and Users Passing Control and Date between Pages Sharing Session and Application Data Memory Usage Considerations 6Database Access Database Programming using JDBC Studying Javax.sql.* package Accessing a Database from a JSP Page Application Specific Database Actions Deploying JAVA Beans in a JSP Page 52 Teaching and learning methods Lecture, assignments, projectsand exercises Assessment & Evaluation Methods Assignment 10%, Lab Exercise &Project 25%,Mid Exam 25%, Final Exam 40% Summary of Course assignments, tests and exam LaboratoryTest #1 Assignment #1 Seminar Lab report Total LectureTest#2 Mid exam Final exam Total Grading: as per-the harmonized academic policy Course policy: Texts and references: TEXT BOOKS: 1.Web Programming, building internet applications, Chris Bates 2nd edition, WILEY Dreamtech (UNIT 1,2) 2.The complete Reference Java 2 Fifth Edition ,PatrickNaughton and HerbertSchildt., TMH (Chapters: 25)(UNIT 2,3) 3. Java Server Pages Hans Bergsten, SPD OReilly (UNITs 3,4,5) REFERENCE BOOKS: Programming world wide web-Sebesta,Pearson CoreSERVLETS ANDJAVASERVER PAGES VOLUME 1: CORETECHNOLOGIES, Marty Hall and Larry Brown Pearson Internet and World Wide Web How to program ,Dietel and Nieto PHI/Pearson. Jakarta Struts Cookbook , Bill Siggelkow, S P D OReilly for chap 8. Murachs beginning JAVA JDK 5, Murach, SPD An Introduction to web Design and Programming Wang-Thomson Professional Java Server Programming,S.Allamaraju and othersApress(dreamtech). Java Server Programming ,Ivan Bayross and others,The X Team,SPD Web Warrior Guide to Web Programmming-Bai/Ekedaw-Thomas Beginning Web Programming-Jon Duckett WROX. Java Server Pages, Pekowsky, Pearson. Java Script,D.Flanagan,OReilly,SPD. 53 Course Description: This course examines basic issues in operating system design and implementation. The discussion is to cover the tradeoffs that can be made between performance and functionality during the design and implementation of an operating system. Particular emphasis will be given to the major OS subsystems: process management (processes, threads, CPU scheduling), Memory management, file and I/O device management and deadlock), memory management (segmentation, paging, swapping) and file systems. Course Objectives: After completing this course students should be able to: Explain the objectives and functions of modern operating systems. Describe how operating systems have evolved over time from primitive batch systems to sophisticated multiuser systems. Analyze the tradeoffs inherent in operating system design. Describe the functions of a contemporary operating system with respect to convenience, efficiency, and the ability to evolve. Identify potential threats to operating systems and the security features design to guard against them. Describe how issues such as open source software and the increased use of the Internet are influencing operating system design. Course Schedule, topics, activities, and readingsWeekTopicActivitiesReading 1Overview: Role and purpose of operating systems; history of operating systemdevelopment; functionality of a typical operating system; design issues (efficiency,robustness, Program of StudyXx Science & Technology University School of Engineering BSc. in Software Engineering Courses codeSE 2041 Courses TitleOperating System Degree ProgramB.Sc. in Software Engineering Module nameComputer Science Courses Module number Course chairContact address: Instructor/TutorContact address and Consultation Hours: ECTS credit (CP)6 Contact hours per week Lectures Tutorials & seminars Laboratory & workshop Home Study Total 303511 Lecture days, hours,& room Tutorial /lab days & hour Target group Year /semesterII / II Pre-requisitesData Structures and Algorithms Status of the courseCompulsory 54 flexibility, portability, security, compatibility) Basic principles: Structuring methods; abstractions, processes, and resources; device organization; interrupts; user/system state transitions 2Concurrency: The idea of concurrent execution; states and state diagrams; implementation structures (ready lists, process control blocks, and so forth); dispatching and context switching; interrupt handling in a concurrent environment 3Mutual exclusion: Definition of the mutual exclusion problem; deadlock detection and prevention; solution strategies; models and mechanisms (semaphores, monitors, condition variables, rendezvous); producer-consumer problems; synchronization; multiprocessor issues 4Scheduling: Preemptive and non-preemptive scheduling; scheduling policies; processes and threads; real-time issues Memory management: Review of physical memory and memory management hardware; overlays, swapping, and partitions; paging and segmentation; page placement and replacement policies; working sets and thrashing; caching 5Device management: Characteristics of serial and parallel devices; abstracting device differences; buffering strategies; direct memory access; recovery from failures File systems: Fundamental concepts (data, metadata, operations, organization, buffering, sequential vs. nonsequential files); content and structure of directories; 6file system techniques (partitioning, mounting and unmounting, virtual file systems); memory-mapped files; special-purpose file systems; naming, searching, and access; backup strategies Security and protection: Overview of system security; policy/mechanism separation; security methods and devices; protection, access, and authentication; models of protection; memory protection; encryption; recovery management Teaching and learning methods Lecture, assignments, projectsand exercises Assessment & Evaluation Methods Assignment 15%, Exercise 10%,Mid Exam 30%, Final Exam 45% Summary of Course assignments, tests and exam LaboratoryTest #1 Assignment #1 Seminar Lab report Total LectureTest#2 55 Mid exam Final exam Total Grading: as per-the harmonized academic policy Course policy: Texts and references: Textbook:Andrew S.Tanenbaum, Modern Operating System, Third edition. References William Stalling, Operating System, Principles& Deign ImplementationP.Balakrishna Prasad, Operating system & Systems Programming Course Description: Course Objectives: Course Schedule, topics, activities, and readingsWeekTopicActivitiesReading 1Security Goals, Security Attacks (Interruption, Interception, Modification and Fabrication), Security Services Program of StudyXx Science & Technology University School of Engineering BSc. in Software Engineering Courses codeSE 4092 Courses TitleInformation Security Degree ProgramB.Sc. in Software Engineering Module nameComputer Science Courses Module number Course chairContact address: Instructor/TutorContact address and Consultation Hours: ECTS credit (CP)5 Contact hours per week Lectures Tutorials & seminars Laboratory & workshop Home Study Total 203510 Lecture days, hours,& room Tutorial /lab days & hour Target group Year /semesterII / II Pre-requisitesData Communication and Computer Networks Status of the courseCompulsory 56 (Confidentiality, Authentication, Integrity, Non-repudiation, access Control and Availability) and Mechanisms 2A model for Internetwork security, Internet Standards and RFCs, Mathematical Tools for Cryptography: Introduction to number theory, prime & relative numbers, modular arthimetic, Fermats and Eulers theorems, testing for primality, Chinese remainder theorem, Discrete logarithms 3Conventional Encryption Principles &Algorithms(DES, AES, RC4), Block Cipher Modes of Operation, Location of Encryption Devices, Key Distribution,Public key cryptography principles, public key cryptography algorithms(RSA, RABIN, ELGAMAL, Diffie-Hellman, ECC), Key Distribution 4Approaches of Message Authentication, Secure Hash Functions(SHA-512, WHIRLPOOL) and HMAC - Digital Signatures: Comparison, Process- Need for Keys, Signing the Digest, Services, Attacks on Digital Signatutres,Kerberos, X.509 Directory Authentication Service 5Network Management, Basic concepts of SNMP, SNMPv1 Community facility and SNMPv3 OS Security, OS Security Functions, Separation, Memory Protection, Access Control, Trusted Operating System: MAC, DAC, Trusted path, Trusted Computing Base 6Viruses and related threats, Anatomy of Virus, Virus Counter Measures - Software Flaws: Buffer Overflow, Incomplete Mediation, Race Conditions, Malware: Brain, Morris Worm, Code Red, Malware Detection - Firewalls, Design principles, Types of Firewalls, Firewall Architectures, Trusted Systems. Teaching and learning methods Lecture, assignments, projectsand exercises Assessment & Evaluation Methods Assignment 10%, Lab Exercise &Project 25%,Mid Exam 25%, Final Exam 40% Summary of Course assignments, tests and exam LaboratoryTest #1 Assignment #1 Seminar Lab report Total LectureTest#2 Mid exam Final exam Total 57 Grading: as per-the harmonized academic policy Course policy: Texts and references: Textbook:Network Security Essentials (Applications and Standards) by William Stallings, Pearson Education. Information Security Principles & Practice, Mark Stamp, WILEY INDIA 2006. References Cryptography and network Security, Fourth edition, Stallings, PHI/Pearson Cryptography & Network Security by Behrouz A. Forouzan, TMH 2007. Network Security: The complete reference, Robert Bragg, Mark Rhodes, TMH Computer Security Basics by Rick Lehtinen, Deborah Russell &G.T.Gangemi Sr., SPD OREILLY 2006. Modern Cryptography by Wenbo Mao, Pearson Education 2007. Program of StudyXx Science & Technology University School of Engineering BSc. in Software Engineering Courses codeSE 3031 Courses TitleSoftware Requirements Analysis Degree ProgramB.Sc. in Software Engineering Module nameSoftware Modeling and Analysis Module number Course chairContact address: Instructor/TutorContact address and Consultation Hours: ECTS credit (CP)5 Contact hours per week Lectures Tutorials & seminars Laboratory & workshop Home Study Total 300609 Lecture days, hours,& room Tutorial /lab days & hour Target group Year /semesterIII / I Pre-requisitesObject Oriented Software Engineering Status of the courseCompulsory 58 Course Description: Domain engineering.Techniques for discovering and eliciting requirements.Languages and models for representing requirements. Analysis and validation techniques, including need, goal, and use case analysis. Requirements in the context of system engineering. Specifying and measuring external qualities: performance, reliability, availability, safety, security, etc. Specifying and analyzing requirements for various types of systems: embedded systems, consumer systems, web-based systems, business systems, systems for scientists and other engineers. Resolving feature interactions.Requirements documentation standards.Traceability.Human factors.Requirements in the context of agile processes. Requirements management: Handling requirements changes. Course Objectives: Upon completion of this course, students will have the ability to: Discover or elicit requirements using a variety of techniques Organize and prioritize requirements Apply analysis techniques such as needs analysis, goal analysis, and use case analysis Validate requirements according to criteria such as feasibility, clarity, freedom from ambiguity, etc. Represent functional and non-functional requirements for different types of systems using formal and informal techniques Specify and measure quality attributes Negotiate among different stakeholders in order to agree on a set of requirements Detect and resolve feature interactions Course Schedule, topics, activities, and readingsWeekTopicActivitiesReading 1Basics of software requirements engineering Requirements engineering process: requirements elicitation, specification, analysis, and management 2Types of requirements: functional, non-functional, quality attributes Requirements elicitation: identifying needs, goals, and requirements. Customers and other stakeholders. Interviews and observations 3Requirements specification: textual and graphical notations and languages (UML, User Requirements notation). Techniques to write high-quality requirements. Documentation standards 4Requirements analysis: inspection, validation, completeness, detection of conflicts and inconsistencies. Feature interaction analysis and resolution 5Goal- and use-case-oriented modeling, prototyping, and analysis techniques Requirements for typical systems: embedded systems, consumer systems, web-based systems, business systems, systems for scientists and other engineers 6Requirements management: traceability, priorities, changes, baselines, and tool support 59 Requirements negotiation and risk management 7Integrating requirements analysis and software processes (including agile ones) Sample labs and assignments: Writing good requirements. Analysis of a wide variety of existing software systems:Measuring qualities, and reverse engineering requirements. Interviewing users, and translating the results into prototypes iteratively Us