0% found this document useful (0 votes)
46 views5 pages

MODULE 3 Implementationisstes

The document discusses key implementation issues in software engineering, focusing on reuse, configuration management, and host-target development. It highlights the benefits and costs of code reuse, the importance of managing software versions and changes, and the challenges faced when developing on different platforms. Tools and strategies for effective software development are also outlined, emphasizing the need for proper management to ensure high-quality software delivery.

Uploaded by

Vansh negi
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
46 views5 pages

MODULE 3 Implementationisstes

The document discusses key implementation issues in software engineering, focusing on reuse, configuration management, and host-target development. It highlights the benefits and costs of code reuse, the importance of managing software versions and changes, and the challenges faced when developing on different platforms. Tools and strategies for effective software development are also outlined, emphasizing the need for proper management to ensure high-quality software delivery.

Uploaded by

Vansh negi
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 5

MODULE 3

Design patterns
Study from backbenchers notes page no. 19

IMPLEMENTATION ISSUES

Software engineering is the process of designing, developing, and maintaining


software. One of the most important phases is implementation, where
developers write the actual code and make the software work.
However, this phase has many challenges, such as reusing existing code,
managing different versions of software, and making sure the software runs
smoothly on different devices. These challenges must be handled properly to
create high-quality software.

1. Reuse
Reuse is a fundamental concept in modern software engineering. Instead of
writing all code from scratch, developers leverage existing components,
libraries, or systems to build new software. This approach reduces
development time, costs, and risks while improving reliability.
Levels of Reuse
Reuse can occur at different levels:
1. Abstraction Level:
o Reuse of design knowledge, such as architectural and design
patterns.
o Example: Using the Model-View-Controller (MVC) pattern for
designing web applications.
2. Object Level:
o Reuse of objects or classes from libraries.
o Example: Using a JavaMail library to handle email functionality in a
Java application.
3. Component Level:
o Reuse of collections of objects or frameworks that provide related
functionality.
o Example: Using a UI framework to build a graphical user interface.
4. System Level:
o Reuse of entire application systems, often through configuration
or integration.
o Example: Customizing a Customer Relationship Management
(CRM) system like Salesforce for a specific business.

Benefits of Reuse
 Faster development.
 Lower costs and reduced risks.
 Improved reliability (reused components are often well-tested).
Costs of Reuse
 Time spent searching for and evaluating reusable components.
 Costs of purchasing or licensing reusable software.
 Effort required to adapt and integrate reusable components.

2. Configuration Management
Software development involves constant changes, and managing these changes
is critical. Configuration management ensures that all team members work
with the correct versions of components and that changes are coordinated
effectively.
Key Activities in Configuration Management
1. Version Management:
o Tracks different versions of software components.
o Prevents conflicts when multiple developers work on the same
component.
o Tools: Git, Subversion.
2. System Integration:
o Ensures the correct versions of components are used to build the
system.
o Automates the process of compiling and linking components.
3. Problem Tracking:
o Manages bug reports and tracks their resolution.
o Tools: Bugzilla, Jira.
4. Release Management:
o Plans and organizes the distribution of new software versions.
o Ensures that releases are stable and meet user requirements.

Importance of Configuration Management


 Prevents overwriting of work.
 Ensures access to the latest versions of components.
 Facilitates rollback to previous versions if issues arise.

3. Host-Target Development
In professional software development, the host system (development
platform) and the target system (execution platform) are often different. The
host system is where the software is developed, while the target system is
where it runs.
Key Concepts
1. Development Platform:
o Includes tools like IDEs, compilers, and testing frameworks.
o Example: Developing a Java application on a Windows PC using
Eclipse.
2. Execution Platform:
o The environment where the software is deployed.
o Example: Running the Java application on a Linux server.
3. Simulators:
o Used to test software when the target hardware is unavailable.
o Example: Simulating sensor inputs for an embedded system.

Challenges
 Differences between host and target platforms can cause compatibility
issues.
 Testing on the target platform may require additional effort, such as
transferring code or using specialized tools.
Tools for Host-Target Development
 Integrated Development Environments (IDEs) like Eclipse or Visual
Studio.
 Debugging and testing tools (e.g., JUnit).
 Configuration management tools (e.g., Git).

You might also like