We may earn an affiliate commission when you visit our partners.
Course image
Kenneth W T Leung

Software Development Life Cycle (SDLC) is the process of developing software through planning, requirement analysis, design, implementation, testing, and maintenance. This course focuses on the implementation and testing phases of SDLC, and you will examine different software development processes for large software systems development, and understand the strengths (pros) and weaknesses (cons) of different software development processes. You will also encounter defensive programming techniques to prevent software bugs during implementation, and learn how to test your system thoroughly using different types of test cases.

Read more

Software Development Life Cycle (SDLC) is the process of developing software through planning, requirement analysis, design, implementation, testing, and maintenance. This course focuses on the implementation and testing phases of SDLC, and you will examine different software development processes for large software systems development, and understand the strengths (pros) and weaknesses (cons) of different software development processes. You will also encounter defensive programming techniques to prevent software bugs during implementation, and learn how to test your system thoroughly using different types of test cases.

Basic object-oriented programming (OOP) concepts are required for topics covered in defensive programming and object-oriented testing. Implementation is driven by the UML models derived from requirement analysis. It is recommended to take the course "Software Engineering: Modeling Software Systems using UML" before attempting this course, but it is not a hard requirement.

Enroll now

What's inside

Syllabus

Introduction to Software Development
Welcome to the first module of this course! In this module, you will learn: (1) The tasks involved in software development. (2) The processes involved in Software Development Life Cycle (SDLC).
Read more
Software Development Processes
In this module, you will learn: (1) Different software development processes, including Waterfall, Code-and-Fix, Prototyping, Spiral, Phased-Released, Agile, Extreme Programming, Continuous Integration, Scrum, and Unified Process.
Implementation and Defensive Programming
In this module, you will learn: (1) The purpose and the major activities of implementation. (2) Defensive programming techniques to prevent software bugs during implementation.
Debugging and Configuration Management
In this module, you will learn: (1) Different techniques for debugging. (2) Configuration management to manage, control and monitor changes to life cycle artifacts.
White Box Testing
In this module, you will learn: (1) The purpose of testing. (2) Design tests that have the highest likelihood of finding defects with the minimum amount of time and effort. (3) What is White Box testing. (4) Revealing subdomains for Basis Path Testing.
Black Box Testing
In this module, you will learn: (1) Revealing subdomains for Condition Testing, Loop Testing, and Data Flow Testing. (2) What is Black Box testing. (3) Revealing subdomains with equivalence partitioning. (4) Revealing subdomains for Boundary Testing.
Acceptance Testing
In this module, you will learn: (1) How to perform tests. (2) How to evaluate tests. (3) Deriving test case for Acceptance Testing.

Good to know

Know what's good
, what to watch for
, and possible dealbreakers
Teaches elements of Software Development Life Cycle (SDLC): planning, requirement analysis, design, implementation, testing, and maintenance
Provides a solid grasp of the core elements of software development for students with basic object-oriented programming knowledge
Excellent resource for students or professionals seeking to advance their skills in software development
Taught by Kenneth W T Leung, an experienced and well-respected instructor in software engineering
Offers a blend of theory and practical techniques
Explicitly requires students to have basic object-oriented programming knowledge
Students are expected to have access to appropriate development tools and environments, which may entail additional expenses

Save this course

Save Software Engineering: Implementation and Testing to your list so you can find it easily later:
Save

Activities

Be better prepared before your course. Deepen your understanding during and after it. Supplement your coursework and achieve mastery of the topics covered in Software Engineering: Implementation and Testing with these activities:
Create a Resource Compilation on Different Software Development Processes
Organize and review key information on various software development processes to enhance your understanding of their strengths and weaknesses.
Show steps
  • Gather resources from books, articles, and online sources on different software development processes
  • Organize the resources into a coherent collection, categorizing them based on process type
  • Review the compilation to identify key concepts and compare the strengths and weaknesses of each process
  • Share your compilation with peers or online forums for feedback and discussion
Practice Debugging with Code Examples
Enhance your debugging skills by working through code examples that demonstrate different debugging techniques.
Show steps
  • Find online resources or tutorials that provide code examples with debugging exercises
  • Follow the instructions and attempt to debug the code examples
  • Analyze the debugging process and identify the techniques used to resolve the bugs
  • Practice debugging techniques on your own code projects
Attend a Workshop on Object-Oriented Testing
Deepen your understanding of object-oriented testing by attending a workshop tailored to this topic.
Show steps
  • Research and identify workshops on object-oriented testing
  • Register and attend the selected workshop
  • Actively participate in the workshop, taking notes and asking questions
  • Apply the knowledge and techniques learned to your own testing practices
Four other activities
Expand to see all activities and additional details
Show all seven activities
Host a Peer Study Session on Black-Box Testing
Collaborate with peers to enhance your grasp of black-box testing through a dedicated study session.
Browse courses on Black-Box Testing
Show steps
  • Organize a group of peers interested in black-box testing
  • Select a specific topic or aspect of black-box testing to focus on
  • Prepare materials and discussion points to facilitate the study session
  • Host the study session, guiding discussions and encouraging active participation
Conduct White-Box Testing on a Given Code Base
Reinforce your understanding of white-box testing by applying it to a real-world code base.
Browse courses on White-Box Testing
Show steps
  • Obtain a code base or develop your own for testing purposes
  • Review the code base to familiarize yourself with its structure and functionality
  • Design white-box test cases based on the code's logic and structure
  • Execute the test cases and analyze the results to identify potential defects
Write a Code Sample Using Defensive Programming Techniques
Implement defensive programming techniques to prevent software bugs during implementation by writing a sample of code.
Show steps
  • Review defensive programming techniques discussed in the course
  • Choose a programming language and development environment
  • Design and implement a code sample that incorporates defensive programming techniques
  • Test the code sample thoroughly to verify its functionality and adherence to defensive programming principles
Design and Implement a Test Plan for a Software Application
Develop a comprehensive test plan to apply the principles of testing to a software application.
Browse courses on Software Testing
Show steps
  • Familiarize yourself with the software application and its requirements
  • Define the scope and objectives of the test plan
  • Design test cases covering various aspects of the application's functionality
  • Specify the test environment, resources, and schedule for test execution
  • Document the test plan in a clear and concise manner

Career center

Learners who complete Software Engineering: Implementation and Testing will develop knowledge and skills that may be useful to these careers:
Software Test Engineer
The Software Test Engineer is responsible for testing software applications to ensure that they are free of bugs and meet the requirements of the end-user. This course, 'Software Engineering: Implementation and Testing', may be useful to Software Test Engineers because it provides a comprehensive overview of software testing techniques and methodologies. The course covers topics such as test planning, test case design, test execution, and test reporting, which are essential for success in this role.
Software Development Engineer
The Software Development Engineer plans, designs, develops, tests and maintains software systems. These systems can range from web-based applications to mobile apps to enterprise-level software solutions that help businesses operate more efficiently. The course, 'Software Engineering: Implementation and Testing', may be useful to Software Development Engineers, as it provides a solid foundation in the principles and practices of software development, with a focus on implementation and testing. This course can help Software Development Engineers build their skills in software design, coding, testing, and debugging, which are essential for success in this role.
Quality Assurance Analyst
The Quality Assurance Analyst is responsible for developing and implementing quality assurance processes to ensure that software products meet the required standards of quality. This course, 'Software Engineering: Implementation and Testing', may be useful to Quality Assurance Analysts because it provides a solid foundation in the principles and practices of software quality assurance. The course covers topics such as quality planning, quality control, and quality improvement, which are essential for success in this role.
Software Developer
Software Developers are responsible for designing, developing, and maintaining software applications. They work closely with other members of the development team to ensure that the software meets the requirements of the end-user. This course, 'Software Engineering: Implementation and Testing', may be useful to Software Developers because it provides a comprehensive overview of the software development process, with a focus on implementation and testing. The course covers topics such as software design, coding, testing, and debugging, which are essential for success in this role.
Project Manager
Project Managers are responsible for planning, organizing, and managing software development projects. They work with the development team to ensure that the project is completed on time, within budget, and according to the requirements of the end-user. This course, 'Software Engineering: Implementation and Testing', may be useful to Project Managers because it provides a solid foundation in the principles and practices of software project management. The course covers topics such as project planning, project scheduling, and project risk management, which are essential for success in this role.
Software Architect
Software Architects are responsible for designing and developing the overall architecture of software systems. They work with other members of the development team to ensure that the system meets the requirements of the end-user. This course, 'Software Engineering: Implementation and Testing', may be useful to Software Architects because it provides a solid foundation in the principles and practices of software architecture. The course covers topics such as software design, software architecture patterns, and software quality assurance, which are essential for success in this role.
Computer Scientist
Computer Scientists are responsible for conducting research in the field of computer science. They develop new algorithms, design new software systems, and study the foundations of computing. This course, 'Software Engineering: Implementation and Testing', may be useful to Computer Scientists because it provides a solid foundation in the principles and practices of software engineering. The course covers topics such as software design, software development, and software testing, which are essential for success in this role.
Technical Writer
Technical Writers are responsible for creating documentation for software products. This documentation can include user manuals, technical manuals, and white papers. This course, 'Software Engineering: Implementation and Testing', may be useful to Technical Writers because it provides a solid foundation in the principles and practices of software documentation. The course covers topics such as documentation planning, documentation writing, and documentation testing, which are essential for success in this role.
Systems Analyst
Systems Analysts are responsible for analyzing and designing computer systems. They work with users to understand their needs and develop systems that meet those needs. This course, 'Software Engineering: Implementation and Testing', may be useful to Systems Analysts because it provides a solid foundation in the principles and practices of software engineering. The course covers topics such as software design, software development, and software testing, which are essential for success in this role.
Data Scientist
Data Scientists are responsible for collecting, analyzing, and interpreting data. They use this data to develop models and insights that can help businesses make better decisions. This course, 'Software Engineering: Implementation and Testing', may be useful to Data Scientists because it provides a solid foundation in the principles and practices of software engineering. The course covers topics such as software design, software development, and software testing, which are essential for success in this role.
Web Developer
Web Developers are responsible for designing, developing, and maintaining websites. They work with web designers to create the visual appearance of the website and with web programmers to develop the functionality of the website. This course, 'Software Engineering: Implementation and Testing', may be useful to Web Developers because it provides a solid foundation in the principles and practices of software engineering. The course covers topics such as software design, software development, and software testing, which are essential for success in this role.
Computer Programmer
Computer Programmers are responsible for writing the code that makes software work. They work with software developers to design and develop software applications. This course, 'Software Engineering: Implementation and Testing', may be useful to Computer Programmers because it provides a solid foundation in the principles and practices of software engineering. The course covers topics such as software design, software development, and software testing, which are essential for success in this role.
Information Technology (IT) Consultant
IT Consultants are responsible for providing advice and guidance to businesses on how to use information technology to improve their operations. They work with businesses to identify their needs and develop IT solutions that meet those needs. This course, 'Software Engineering: Implementation and Testing', may be useful to IT Consultants because it provides a solid foundation in the principles and practices of software engineering. The course covers topics such as software design, software development, and software testing, which are essential for success in this role.
Software Quality Engineer
Software Quality Engineers are responsible for ensuring that software products meet the required standards of quality. They work with other members of the development team to identify and fix bugs and to develop and implement quality assurance processes. This course, 'Software Engineering: Implementation and Testing', may be useful to Software Quality Engineers because it provides a solid foundation in the principles and practices of software quality assurance. The course covers topics such as quality planning, quality control, and quality improvement, which are essential for success in this role.
IT Manager
IT Managers are responsible for planning, organizing, and managing the IT department of an organization. They work with other members of the management team to develop and implement IT policies and procedures. This course, 'Software Engineering: Implementation and Testing', may be useful to IT Managers because it provides a solid foundation in the principles and practices of software engineering. The course covers topics such as software design, software development, and software testing, which are essential for managing a software development team.

Reading list

We've selected 14 books that we think will supplement your learning. Use these to develop background knowledge, enrich your coursework, and gain a deeper understanding of the topics covered in Software Engineering: Implementation and Testing.
Comprehensive guide to software development and covers everything from requirements gathering to testing and deployment. It valuable resource for software developers of all levels.
Classic in the software development community and provides a catalog of design patterns that can be used to solve common software development problems.
Beginner-friendly introduction to Java programming and good choice for those who are new to Java.
Provides a collection of best practices and design principles for Java programming and valuable resource for Java developers of all levels.
Is the definitive reference for the Java programming language and valuable resource for Java developers of all levels.
Comprehensive guide to Java concurrency and valuable resource for Java developers who need to write concurrent and multithreaded code.
Practical guide to test-driven development and provides techniques for writing tests that drive the design and implementation of code.
Comprehensive guide to software testing and provides techniques for testing the quality and reliability of software.
Practical guide to agile testing and provides techniques for testing software in an agile development environment.
Practical guide to DevOps and provides techniques for improving the collaboration between development and operations teams.

Share

Help others find this course page by sharing it with your friends and followers:

Similar courses

Here are nine courses similar to Software Engineering: Implementation and Testing.
Software Engineering: Software Design and Project...
Most relevant
Software Engineering: Modeling Software Systems using UML
Most relevant
302: Software Engineeri
Most relevant
Software Development From A to Z - Beginner's Complete...
Most relevant
UML and Object-Oriented Design Foundations
Most relevant
Object-Oriented Design
Most relevant
Software Development Explained
Most relevant
Software Testing,QA Testing, Manual Testing,SDLC,Test Plan
Most relevant
Java Design Patterns & SOLID Design Principles
Most relevant
Our mission

OpenCourser helps millions of learners each year. People visit us to learn workspace skills, ace their exams, and nurture their curiosity.

Our extensive catalog contains over 50,000 courses and twice as many books. Browse by search, by topic, or even by career interests. We'll match you to the right resources quickly.

Find this site helpful? Tell a friend about us.

Affiliate disclosure

We're supported by our community of learners. When you purchase or subscribe to courses and programs or purchase books, we may earn a commission from our partners.

Your purchases help us maintain our catalog and keep our servers humming without ads.

Thank you for supporting OpenCourser.

© 2016 - 2024 OpenCourser