This course is design to introduce fundamental principles and techniques of software development i.e., Software Construction is the detailed creation of working software through a combination of coding, verification, unit testing, integration testing and debugging. Construction uses the output from the design process to build software therein described, and provides an output to testing. Thus, design, construction and testing are closely intertwined, and very often overlap.
Some design functions may carry over into the construction phase, and unit/integration testing are frequently performed during the construction phase. In this course, we will examine key construction fundamentals such as minimizing complexity, dealing with change, building for verification and basic construction standards. From fundamentals, the course moves through managing the construction process; key practical considerations; construction technologies and construction tools.
Software Engineering All Information
Since construction is a hands-on intensive endeavor, students are challenged with hands-on exercises that mimic real-world software construction challenges
• Easy to understand, error free and modifiable object-oriented programs and small-scale systems.
• To deal with code complexity, changeability, reusability.
To build individual programs as assignments and projects in teams to explicitly learn unit development and integration issues.
COURSE LEARNING OUTCOMES (CLO)
CLO: 1. Explain important concepts of code by design; object-oriented design translations into object-oriented code i.e., abstraction, modularity, and concurrency, software design patterns, error free programming, unit and integration testing, debugging, (C1-Knowledge)
Software Engineering In Urdu
CLO: 2. Select and apply appropriate object-oriented programming to constructs; optimized, error free, and reusable, code as individual developer. (C3-Application)
CLO: 3. Design and develop a small software system as a team by using appropriate programming, testing, and integration tools and techniques. (C3-Application)
- Fundamental Programming Structures in Java: data types, variables, operators, strings, inputs and out puts, Control flow, Arrays,
• Classes & Objects; Class structures, using predefine classes, access specifies, instance variable, design Hints of message passing, methods, methods overloading, object Instantiation, Design hints of creational and structural pattern required
Refinement In Software Engineering In Hindi
• Inheritance: Design hints i.e. creational, structural and behavior patterns and concepts implementation of inheritance, polymorphism, generic array list, reflection, interfaces & inner Classes, abstract classes & methods, template classes & methods,
• Event-based programming: Fundamentals of programming graphical user interfaces; graphic programming, event handling, user interface components with swings; view hierarchy, Composite pattern, Publish-Subscribe pattern, Model-View-Controller (MVC), Pitfalls of event-based programming
• Exceptions, Assertions, Logging, and Debugging: Dealing with errors, catching exceptions, using assertions, logging, debugging tips
• Deploying Applications: JAR Files, The manifest files, executable JAR files, Applets
• Collections: Collection interfaces, Concreate collections, the collection frameworks
• Multithreading: Thread states, thread property, Synchronization, Blocking queues, executor, thread pool pattern
• Specifications ; behavior equivalence, specification structure, null reference, Exceptions, Assertions, Logging, and Debugging
• Designing Specifications; deterministic vs undetermined specs, declarative vs operational specs, stronger vs weaker specs, designing good specifications, access controls
• Recursion and recursive data types
• Concurrency and threads safety
• Sockets & networking
• Team version control